如何在将日期转换为ISO字符串后删除时间?
var now = new Date();
console.log( now.toISOString() );
如果输出
2017-10-19T16:00:00.000Z
我只想要它:
2017-10-19
答案 0 :(得分:4)
实际上有很多方法可以做到:
1-使用Moment JS可以灵活处理问题
2-在原生JS中执行此操作的简单方法是使用substr()
函数:
var date = new Date();
console.log(date.toISOString().substr(0,10));
如果只需要删除字符串的时间部分并仅使用日期,第二种方法会更有效。
答案 1 :(得分:1)
最好在js中使用与日期时间相关的函数的时刻。现在你可以立即使用substring方法:
var a = "2017-10-19T16:00:00.000Z"
a = a.substring(0,10)
答案 2 :(得分:1)
以下是如何使用momentjs
完成的 var currentDate = moment().format('YYYY-MM-DD');
查看Jsfiddle链接:https://jsfiddle.net/cgbcc075/
答案 3 :(得分:0)
一种简单但可靠的方法是沿日期分隔符进行分割:
new Date().toISOString().split('T', 1)[0] // => '2019-03-18'
如果使用未知来源的ISO字符串,则使用Regex模式作为分隔符可能会更可靠(即Postgres使用空格作为分隔符)。
const isoString = '2019-01-01 12:00:00.000000'
isoString.split(/[T ]/i, 1)[0] // => '2019-01-01'
与使用substring
不同,此方法不会对日期的长度进行假设(对于1000年之前和9999年之后的年份可能是错误的)。