date-fns returns 前一天值中的解析函数
parse function in date-fns returns one day previous value
我正在尝试使用 date-fns 库解析日期,但结果是提前一天。我怎样才能避免这种情况并获得正确的结果?
start = '2021-08-16'
const parseStart = parse(start, 'yyyy-MM-dd', new Date());
输出:
2021-08-15T18:30:00.000Z
为了避免时区开销,我建议将您的日期字符串格式化为 ISO 字符串,然后使用 date-fns 的 parseISO
函数。
像这样:
import { parseISO } from 'date-fns';
const parseStringDate = (dateString: string): Date => {
const ISODate = new Date(dateString).toISOString();
return parseISO(ISODate);
};
parseStringDate("2021-08-19") //2021-08-19T00:00:00.000Z
这对我有用 (v.2+):
// wrong:
const date = format(new Date('2021-10-01'),'dd/MM/yyyy')
console.log(date) // "30/09/2021"
// ok:
const date = format(new Date('2021/10/01'),'dd/MM/yyyy')
console.log(date) // "01/10/2021"
我们在尝试对带连字符的字符串日期使用 date-fns 格式函数时遇到了类似的问题。它在格式化时从日期中减去一天。解决方案实际上是改变对斜杠的宣传。
const dateString = '2010-08-03'
const date = new Date(dateString.replace(/-/g, '/'))
我正在尝试使用 date-fns 库解析日期,但结果是提前一天。我怎样才能避免这种情况并获得正确的结果?
start = '2021-08-16'
const parseStart = parse(start, 'yyyy-MM-dd', new Date());
输出:
2021-08-15T18:30:00.000Z
为了避免时区开销,我建议将您的日期字符串格式化为 ISO 字符串,然后使用 date-fns 的 parseISO
函数。
像这样:
import { parseISO } from 'date-fns';
const parseStringDate = (dateString: string): Date => {
const ISODate = new Date(dateString).toISOString();
return parseISO(ISODate);
};
parseStringDate("2021-08-19") //2021-08-19T00:00:00.000Z
这对我有用 (v.2+):
// wrong:
const date = format(new Date('2021-10-01'),'dd/MM/yyyy')
console.log(date) // "30/09/2021"
// ok:
const date = format(new Date('2021/10/01'),'dd/MM/yyyy')
console.log(date) // "01/10/2021"
我们在尝试对带连字符的字符串日期使用 date-fns 格式函数时遇到了类似的问题。它在格式化时从日期中减去一天。解决方案实际上是改变对斜杠的宣传。
const dateString = '2010-08-03'
const date = new Date(dateString.replace(/-/g, '/'))