[英]Moment and date-fns formatting date incorrect
我一直在尝试将 zulu 格式日期格式化为正常日期,即 MM/dd/yyyy,到目前为止,我已经尝试过 date-fns 和 moment。 我的日期是2022-11-03T19:48:24Z
我希望它的格式为11/03/2022
但我得到的是11/04/2022
,我不明白为什么要在日期上加一天我该如何解决这个问题?
export function fDate(
date: Date | string | number,
template: string = 'MM/dd/yyyy'
) {
return format(new Date(date), template);
}
fDate('2022-11-03T19:48:24Z')
预期结果 11/03/2022 但得到 11/04/2022
format
来自 date-fns
当您使用像 moment.js 或 date-fns 这样的库时,不要使用Date
构造函数来解析 date_time 字符串。 相反,请使用您要使用的库中适用的构造函数或方法。
瞬间.js
您问题中张贴的符号与要求的符号不匹配。 符号d
和D
具有不同的含义。 y
和Y
也是如此。 查看文档页面https://momentjs.com/docs/
以下代码生成的正确结果为11/03/2022
。
var moment = require('moment');
console.log(moment("2022-11-03T19:48:24Z").format('MM/DD/YYYY'));
在您的代码中,这将实现为
return moment(date).format('MM/DD/YYYY');
日期-fns
您问题中发布的符号与所需的符号匹配。
以下代码生成的正确结果为11/03/2022
。
const fns = require('date-fns')
console.log(fns.format(fns.parseISO('2022-11-03T19:48:24Z'), 'MM/dd/yyyy'))
在您的代码中,这将实现为
return fns.format(fns.parseISO(date), 'MM/dd/yyyy');
使用 moment 的parseZone
帮助了我
export function fDateISOStringToDate(
date: string,
template: string = "MM/DD/YYYY"
) {
return moment.parseZone(date).format(template);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.