将日期转换为 ISOString 后删除时间

M.I*_*zat 5 html javascript jquery

将日期转换为 ISO 字符串后如何删除时间?

var now = new Date();
console.log( now.toISOString() );
Run Code Online (Sandbox Code Playgroud)

如果输出是

2017-10-19T16:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

我只是希望它是:

2017-10-19
Run Code Online (Sandbox Code Playgroud)

Ram*_*usa 10

其实有很多方法可以做到:

1- 使用Moment JS为您提供处理问题的灵活性

2- 在本机 JS 中执行此操作的简单方法是使用这样的substr()函数:

var date = new Date();
console.log(date.toISOString().substr(0,10));
Run Code Online (Sandbox Code Playgroud)

如果您只需要删除字符串的时间部分并仅使用日期,则第二种方法会更有效。


Min*_*esh 6

一种简单但强大的方法是沿日期分隔符拆分:

new Date().toISOString().split('T', 1)[0] // => '2019-03-18'
Run Code Online (Sandbox Code Playgroud)

如果使用未知来源的 ISO 字符串,使用 Regex 模式作为分隔符可能会更可靠(即 Postgres 使用空格作为分隔符)。

const isoString = '2019-01-01 12:00:00.000000'

isoString.split(/[T ]/i, 1)[0] // => '2019-01-01'
Run Code Online (Sandbox Code Playgroud)

与使用 不同substring,这种方法不对日期的长度做出假设(这可能在 1000 年之前和 9999 年之后证明是错误的)。