【问题标题】:Convert HTTP Header timestamp to another datetime format将 HTTP 标头时间戳转换为另一种日期时间格式
【发布时间】:2014-04-06 18:20:18
【问题描述】:

在我的客户端-服务器通信(基于javascript)中,我得到了一些标头,其中是

Date : Tue, 04 Mar 2014 21:35:31 GMT

但我需要将其转换为纪元时间以及我的 PHP 应用程序可以理解的这种格式:

2013-07-26 21:36:51

我试图查看 Javascript 日期对象引用,但无法在 Javascript 中从一种日期格式转换为另一种日期格式。我也不确定我指定的每种日期/时间格式的正式名称。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

有什么想法吗?

谢谢

【问题讨论】:

    标签: javascript php http-headers xmlhttprequest


    【解决方案1】:

    您需要它是 PHP 还是 JavaScript。这是我的解决方案:

    var newDate = new Date("Tue, 04 Mar 2014 21:35:31 GMT");
    
    newDateString =
        newDate.getFullYear()+"-"+
        (newDate.getMonth() < 9 ? "0" + (newDate.getMonth()+1) : (newDate.getMonth()+1))  +"-"+
        (newDate.getDate() < 10 ? "0" + newDate.getDate() : newDate.getDate())  +" "+
        (newDate.getHours() < 10 ? "0" + newDate.getHours() : newDate.getHours())+":"+
        (newDate.getMinutes() < 10 ? "0" + newDate.getMinutes() : newDate.getMinutes())+":"+
        (newDate.getSeconds() < 10 ? "0" + newDate.getSeconds() : newDate.getSeconds());
    console.log(newDateString);
    

    你可以测试一下here

    PHP-解决方案:

    echo date("Y-m-d H:i:s",strtotime("Tue, 04 Mar 2014 21:35:31 GMT"));
    

    你可以测试一下here

    【讨论】:

      【解决方案2】:

      您需要先创建一个日期对象,然后才能以另一种格式打印出来。因此,您需要解析字符串并获取其组成部分。正则表达式将在这里工作:

      var string = "Tue, 04 Mar 2014 21:35:31 GMT"
      var parts = string.match(/(\w*), (\d{2}) (\w*) (\d{4}) (\d{2})\:(\d{2})\:(\d{2})/);
      var month = "JanFebMarAprMayJunJulAugSepOctNovDec".indexOf(parts[3]) / 3 + 1
      td = new Date(parts[4], month, parts[2],parts[5], parts[6], parts[7])
      td.getTime()
      

      【讨论】:

      • 太棒了,谢谢,我希望我能选择两个答案作为正确答案。非常感谢
      【解决方案3】:

      如果您的应用程序对转换发生的位置具有一定的灵活性,那么一种简单的方法是将日期字符串转换为 JavaScript 中的 unix 时间戳,然后将 unix 时间戳转换为 PHP 中的必​​要格式。

      JavaScript

      将日期字符串转换为 GMT 时区的 unix 时间戳:

      var unixTimestamp = new Date('Tue, 04 Mar 2014 21:35:31 GMT')/1000
      

      PHP

      将 unix 时间戳转换为适当的日期格式:

      $result = gmdate("Y-m-d H:i:s", $unixTimestamp);
      

      结果

      2014-03-04 21:35:31
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-19
        • 2016-11-26
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 2014-08-24
        相关资源
        最近更新 更多