看起来你正在使用目前仍处于alpha(开发)状态的date-fns 2.0版本。
可用的函数及其工作方式似乎还在经常变化。例如,在v2.0.0-alpha.26版本中,toDate()
可以处理字符串参数,但在v2.0.0-alpha.27版本中不再支持这样做。现在有一个新的parseISO()
函数。
现在应该可以正常工作:
format(parseISO('2019-02-11T14:00:00'), 'MM/dd/yyyy')
然而,虽然版本2仍处于测试版阶段,我建议现在使用稳定的1.x版本。
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');
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');
parse( "22/11/2021", "dd/MM/yyyy", new Date() )
- Aman Godara顺便说一下,还有一个案例需要验证:
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())
}
方法toDate无法读取该格式。
尝试像这样转换为Date:
var date = new Date('2019-02-11T14:00:00')
1990-04-20T17:47:38.000000Z
这是一个有效的时间字符串,其中包含时区数据。 - Md. A. Apu
format()
和toDate()
)是什么意思,或者它们来自哪里?它们不是标准的JavaScript。 - PointytoDate()
是从哪里来的?检查一下语法。我认为应该是format(toDate('2019-02-11T14:00:00'), 'yyyy-mm-ddThh:mm:ss')
。 - Praveen Kumar Purushothamanparse
函数,但没有toDate
函数。 - phuzi