【问题标题】:Remove time after converting date toISOString将日期转换为 ISOString 后删除时间
【发布时间】:2017-11-02 02:19:12
【问题描述】:

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

var now = new Date();
console.log( now.toISOString() );

如果输出是

2017-10-19T16:00:00.000Z

我只是希望它是:

2017-10-19

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

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

1- 使用Moment JS,它可以让您灵活地处理问题

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

var date = new Date();
console.log(date.toISOString().substr(0,10));

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

【讨论】:

    【解决方案2】:

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

    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 年之后的年份可能会被证明是错误的)。

    【讨论】:

    • 我同意,最可靠的解决方案是拆分 T 字符,这也是一个假设,但可以说“T”会保留 ;)
    【解决方案3】:

    这是使用 momentjs 的方法

    var currentDate = moment().format('YYYY-MM-DD');

    查看 Jsfiddle 链接:https://jsfiddle.net/cgbcc075/

    【讨论】:

      【解决方案4】:

      日期时间相关的功能最好在js中使用moment。现在您可以立即使用 substring 方法: var a = "2017-10-19T16:00:00.000Z" a = a.substring(0,10)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-03
        • 2014-07-01
        • 1970-01-01
        • 2013-09-20
        相关资源
        最近更新 更多