date-fns 中的解析函数返回前一天的值

Asi*_*ash 6 javascript node.js express reactjs date-fns

我正在尝试使用 date-fns 库解析日期,但结果是前一天。我怎样才能避免这种情况并获得正确的结果?

start = '2021-08-16'
const parseStart = parse(start, 'yyyy-MM-dd', new Date());
Run Code Online (Sandbox Code Playgroud)

输出:

2021-08-15T18:30:00.000Z
Run Code Online (Sandbox Code Playgroud)

baf*_*ian 8

我们在尝试对连字符字符串日期使用 date-fns 格式函数时遇到了类似的问题。格式化时,它从日期中减去一天。事实上,解决方案是改变斜杠的炒作。

const dateString = '2010-08-03'
const date = new Date(dateString.replace(/-/g, '/'))
Run Code Online (Sandbox Code Playgroud)


小智 3

为了避免这个时区开销,我建议将日期字符串格式化为 ISO 字符串,然后使用parseISOdate-fns 函数。

像这样:

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
Run Code Online (Sandbox Code Playgroud)