Fel*_*ger 5 javascript date-fns
我正在尝试date-fns v2。
我想使用toDate和format函数格式化字符串中的日期:
import { format, toDate } from 'date-fns'
format(toDate('2019-02-11T14:00:00'), 'MM/dd/yyyy')
Run Code Online (Sandbox Code Playgroud)
但得到以下错误:
范围错误:无效的时间值
hin*_*nok 17
date-fns 2.0.0-alpha.27(演示:https: //stackblitz.com/edit/js-tztuz6)
使用parseISO:
import { format, parseISO } from 'date-fns'
const formattedDate = format(parseISO('2019-02-11T14:00:00'), 'MM/dd/yyyy');
Run Code Online (Sandbox Code Playgroud)
date-fns v1.30.1(演示: https: //stackblitz.com/edit/js-mt3y6p)
使用解析:
import { format, parse } from 'date-fns'
const formattedDate = format(parse('2019-02-11T14:00:00'), 'MM/DD/YYYY');
Run Code Online (Sandbox Code Playgroud)
Nin*_*rry 11
您似乎正在使用 date-fns 的 2.0 版,该版本目前仍处于 alpha(开发)状态。
哪些功能可用以及它们的工作方式似乎仍然经常变化。例如,虽然在 v2.0.0-alpha.26 版本中toDate() 可以处理字符串参数,但在 v2.0.0-alpha.27 版本中不能再这样做了。parseISO()取而代之的是一个新功能。
这应该现在工作:
format(parseISO('2019-02-11T14:00:00'), 'MM/dd/yyyy')
Run Code Online (Sandbox Code Playgroud)
然而,虽然版本 2 仍处于测试阶段,但我建议现在使用稳定版本 1.x。
bra*_*hex 11
顺便说一句,还有一个案例需要验证:
import { isValid, parseISO, parse } from 'date-fns'
// Date valid
if (isValid(parseISO('2019-11-27 09:45:00'))) {
let dt = parse('2019-11-27 09:45:00', 'yyyy-MM-dd HH:mm:ss', new Date())
}
Run Code Online (Sandbox Code Playgroud)