将js日期转换为php时间戳

时间:2017-07-24 10:50:12

标签: javascript jquery datetime

您好我正在使用js datetime并将此变量发送到php。现在我想将这个js日期转换为php datetime,但它不起作用。这就是我想要的。

输入:

  

Mon Jul 31 2017 06:00:00 GMT + 0500(巴基斯坦标准时间)

Outut:

  

2017-07-31 06:00:00

这是我的代码:

$dispatchDate = "Mon Jul 31 2017 06:00:00 GMT+0500 (Pakistan Standard Time)";
$dispatchDate = substr($dispatchDate, 0, strpos($dispatchDate, '('));
echo date('Y-m-d h:i:s', strtotime($dispatchDate));

但它不起作用。

3 个答案:

答案 0 :(得分:0)

你有时间在GMT转换你在PST的时间

  <?php
    $dispatchDate = "Mon Jul 31 2017 06:00:00 GMT+0500 (Pakistan Standard Time)";
    $dispatchDate = substr($dispatchDate, 0, strpos($dispatchDate, '('));
    echo date('Y-m-d h:i:s', strtotime($dispatchDate." +5 hours"));       
  ?>

现场演示:https://eval.in/836779

答案 1 :(得分:0)

  1. 获取JS中的实际时间戳(即自Unix纪元以来的毫秒数)。最简单的方法是使用ISO 8601格式的字符串

    let dispatchDate = new Date('2017-07-31T06:00:00+05:00')
    let ts = dispatchDate.getTime() / 1000 // JS timestamps are in ms, PHP in seconds
        // -> 1501462800
    
  2. 将该值发送给PHP

  3. 将时间戳解析为PHP DateTime对象

    $tz = new DateTimeZone('+0500');
    $timestampFromJs = $_POST['dispatchDate']; // or however you send it
    $dispatchDate = new DateTime('@' . $timestampFromJs, $tz);
    
  4. 使用DateTime#format显示日期字符串

    echo $dispatchDate->format('Y-m-d h:i:s');
    

答案 2 :(得分:-1)

工作解决方案,我认为最简单:将您的javascript日期时间转换为int(时间戳),将时间戳发送到PHP并将时间戳转换回PHP日期时间。

date('Y-m-d H:i:s', your timestamp)