【问题标题】:Convert dd-mm-yyyy hr:min:sec to unixtime将 dd-mm-yyyy hr:min:sec 转换为 unixtime
【发布时间】:2013-11-29 22:43:38
【问题描述】:

我有一个格式为 dd-mm-yyyy hr:min:sec(24 小时格式的时间)的日期字符串。如何将此字符串转换为 unix 时间。如果我写time() 给我unixtime,我知道在php 中。我正在尝试使用 javascript 从日期字符串中获得相同的结果。

    var expTime = document.getElementById("expiryDT").value; 
    //the value inside this element is the date with (dd-mm-yyyy hr:min:sec) format.
var todayUnixTime = Math.round(+new Date()/1000);
//this gives me the unixtime in seconds for today, ready to pass into php

如何在javascript中将字符串expTime转换成unixtime,以便传递给php;

var expTime = String(document.getElementById("expiryDT").value);

http://jsfiddle.net/N4T5h/2/

【问题讨论】:

标签: javascript date format unix-timestamp


【解决方案1】:

问题在于 Date 无法识别您的日期格式 (dd-mm-yyyy hr:min:sec)。使用有效的 RFC2822 或 ISO 8601 日期格式,或使用其他形式的带数字参数的 Date 构造函数:

new Date(year, month [, day, hour, minute, second, millisecond])

http://jsfiddle.net/N4T5h/3/

【讨论】:

  • 非常感谢。工作! :)
  • @JINSOUL 该示例中的代码非常脆弱,它实际上只是一个示例。如果该值与您提供的格式不完全一致,事情就会中断。只是一个提示。
  • 谢谢,我在 php 中确定了,也让它只可读。
【解决方案2】:

Jinsoul 你说得对,格式错误试试这个: https://stackoverflow.com/a/20570223/1717821

【讨论】:

    【解决方案3】:

    var unixTime = Math.round(new Date('January 21,2013 23:14:12').getTime()/1000);

    【讨论】:

      【解决方案4】:

      使用getTime()方法 这是一个演示:http://jsfiddle.net/nn007/N4T5h/

      【讨论】:

      • 你的小提琴是有道理的,我知道它正在工作,但是当我使用代码并尝试提醒它说无效日期时出于某种该死的原因var expTime = String(document.getElementById("expiryDT").value); alert(expTime); // alerts proper date which is inside the field. expTime = new Date(expTime); alert(expTime); //alerts invalid Date
      • 这是因为 javascript Date 支持“mm-dd-yyyy hr:min:sec”而不是 dd-mm-yyyy hr:min:sec。所以你必须这样做:jsfiddle.net/nn007/N4T5h/4
      【解决方案5】:

      试试:

       var someDate = new Date(Date.parse(expTime));
      

      【讨论】:

        猜你喜欢
        • 2016-06-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2011-03-18
        相关资源
        最近更新 更多