解析并格式化字符串中的日期
Parse and format date in string
我正在试用 date-fns v2.
我想使用 toDate
and format
函数格式化字符串中的日期:
import { format, toDate } from 'date-fns'
format(toDate('2019-02-11T14:00:00'), 'MM/dd/yyyy')
但是出现如下错误:
RangeError: Invalid time value
toDate 方法无法读取该格式。
尝试像这样转换为日期:
var date = new Date('2019-02-11T14:00:00')
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)
使用parse:
import { format, parse } from 'date-fns'
const formattedDate = format(parse('2019-02-11T14:00:00'), 'MM/DD/YYYY');
看来您使用的是date-fns 2.0版本,目前还处于alpha(开发)状态。
可用的功能以及它们的工作方式似乎仍然经常变化。例如,在版本 v2.0.0-alpha.26 中 toDate()
can handle string parameters, it cannot do that any longer in version v2.0.0-alpha.27. There is a new parseISO()
函数改为
现在应该可以工作了:
format(parseISO('2019-02-11T14:00:00'), 'MM/dd/yyyy')
但是,虽然版本 2 仍处于测试阶段,但我建议暂时使用稳定版本 1.x。
顺便说一句,还有一个案例需要验证:
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())
}
我正在试用 date-fns v2.
我想使用 toDate
and format
函数格式化字符串中的日期:
import { format, toDate } from 'date-fns'
format(toDate('2019-02-11T14:00:00'), 'MM/dd/yyyy')
但是出现如下错误:
RangeError: Invalid time value
toDate 方法无法读取该格式。
尝试像这样转换为日期:
var date = new Date('2019-02-11T14:00:00')
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)
使用parse:
import { format, parse } from 'date-fns'
const formattedDate = format(parse('2019-02-11T14:00:00'), 'MM/DD/YYYY');
看来您使用的是date-fns 2.0版本,目前还处于alpha(开发)状态。
可用的功能以及它们的工作方式似乎仍然经常变化。例如,在版本 v2.0.0-alpha.26 中 toDate()
can handle string parameters, it cannot do that any longer in version v2.0.0-alpha.27. There is a new parseISO()
函数改为
现在应该可以工作了:
format(parseISO('2019-02-11T14:00:00'), 'MM/dd/yyyy')
但是,虽然版本 2 仍处于测试阶段,但我建议暂时使用稳定版本 1.x。
顺便说一句,还有一个案例需要验证:
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())
}