首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鲁迅fromFormat模式忽略时间

鲁迅fromFormat模式忽略时间
EN

Stack Overflow用户
提问于 2022-09-29 13:25:36
回答 1查看 76关注 0票数 1

当我尝试用鲁迅的字符串格式创建日期对象时,我会得到无效的日期。

小时和分钟不传递。这给了我一个无效的日期

代码语言:javascript
复制
const dateString = '28.09.2022';
DateTime.fromFormat(dateString, 'dd.LL.yyyy HH:mm').toJSDate();
// Invalid date

使用矩库,如果没有传递时间和分钟,则默认为00:00:00。

代码语言:javascript
复制
const dateString = '28.09.2022';
moment(date, 'DD.MM.YYYY HH:mm').toDate();
// Wed Sep 28 2022 00:00:00 GMT+1000 (Australian Eastern Standard Time)

有没有一些选择来格式化这两种格式,在鲁迅中使用一种方法,就像我在很多地方使用的那样,它接受'DD.MM.YYYY HH:mm‘格式,不管您是否在字符串中传递HH:mm?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-29 13:54:54

不,我担心在鲁迅没有本土的方法来获得moment(String, String)行为。而且,鲁迅似乎没有与moment(String, String[])相对应的地方。

请注意,虽然“那一刻的解析器是非常宽容的”,鲁迅解析部分的文档指出,“鲁迅是非常严格的格式匹配的字符串。”

您可以构建自己的自定义方法并实现所需的业务逻辑,下面是一个可能的示例:

代码语言:javascript
复制
const DateTime = luxon.DateTime;

const customParse = (dateString) => {
  let dt = DateTime.fromFormat(dateString, 'dd.LL.yyyy');
  if (dt.isValid) {
    return dt;
  }
  return DateTime.fromFormat(dateString, 'dd.LL.yyyy HH:mm');
}

let dateString = '28.09.2022';
console.log(customParse(dateString).toJSDate());
dateString = '28.09.2022 11:46';
console.log(customParse(dateString).toJSDate());
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/luxon@3.0.4/build/global/luxon.min.js"></script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73896333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档