当我尝试用鲁迅的字符串格式创建日期对象时,我会得到无效的日期。
小时和分钟不传递。这给了我一个无效的日期
const dateString = '28.09.2022';
DateTime.fromFormat(dateString, 'dd.LL.yyyy HH:mm').toJSDate();
// Invalid date使用矩库,如果没有传递时间和分钟,则默认为00:00:00。
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?
发布于 2022-09-29 13:54:54
不,我担心在鲁迅没有本土的方法来获得moment(String, String)行为。而且,鲁迅似乎没有与moment(String, String[])相对应的地方。
请注意,虽然“那一刻的解析器是非常宽容的”,鲁迅解析部分的文档指出,“鲁迅是非常严格的格式匹配的字符串。”
您可以构建自己的自定义方法并实现所需的业务逻辑,下面是一个可能的示例:
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());<script src="https://cdn.jsdelivr.net/npm/luxon@3.0.4/build/global/luxon.min.js"></script>
https://stackoverflow.com/questions/73896333
复制相似问题