【问题标题】:How to convert date in format "YYYY-MM-DD hh:mm:ss" to UNIX timestamp如何将格式“YYYY-MM-DD hh:mm:ss”的日期转换为 UNIX 时间戳
【发布时间】:2011-10-05 23:14:25
【问题描述】:

如何将格式为“YYYY-MM-DD hh:mm:ss”(例如"2011-07-15 13:18:52")的时间转换为 UNIX 时间戳?

我尝试了这段 Javascript 代码:

date = new Date("2011-07-15").getTime() / 1000
alert(date)

它可以工作,但是当我将 time('2011-07-15 13:18:52') 添加到输入时,它会导致 NaN

【问题讨论】:

    标签: javascript date datetime timestamp unix-timestamp


    【解决方案1】:

    使用长日期构造函数并指定所有日期/时间组件:

    var match = '2011-07-15 13:18:52'.match(/^(\d+)-(\d+)-(\d+) (\d+)\:(\d+)\:(\d+)$/)
    var date = new Date(match[1], match[2] - 1, match[3], match[4], match[5], match[6])
    // ------------------------------------^^^
    // month must be between 0 and 11, not 1 and 12
    console.log(date);
    console.log(date.getTime() / 1000);
    

    【讨论】:

    • 老兄正在获取时间戳,但它不是正确的。当我给出“2011-07-15 14:54:12”时,我得到的时间戳为“1313434452”。但是当我使用“onlineconversion.com/unix_time.htm”检查时,它显示时间戳转换日期为星期一,2011 年 8 月 15 日 07:48:52 GMT,这是错误的。
    【解决方案2】:

    以下代码适用于格式YYYY-MM-DD hh:mm:ss

    function parse(dateAsString) {
        return new Date(dateAsString.replace(/-/g, '/'))
    }
    

    此代码将YYYY-MM-DD hh:mm:ss 转换为YYYY/MM/DD hh:mm:ssDate 构造函数可以轻松解析。

    【讨论】:

    • 这个答案是最好的方法。谢谢!
    【解决方案3】:

    您已接受答案,但可以使用更简单的正则表达式:

    function stringToDate(s)  {
      s = s.split(/[-: ]/);
      return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
    }
    
    alert(stringToDate('2011-7-15 20:46:3'));
    

    当然输入的字符串必须是正确的格式。

    【讨论】:

      【解决方案4】:

      月份从 0 开始,与日子不同!所以这将完美地工作(tested

      function dateToUnix(year, month, day, hour, minute, second) {
          return ((new Date(Date.UTC(year, month - 1, day, hour, minute, second))).getTime() / 1000.0);
      }
      

      【讨论】:

        【解决方案5】:

        这将返回自 1970 年 1 月 1 日以来的毫秒数: Date.parse('2011-07-15 10:05:20')

        只需除以 1000 即可得到秒数而不是毫秒数..

        【讨论】:

        猜你喜欢
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多