您好我正在使用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));
但它不起作用。
答案 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"));
?>
答案 1 :(得分:0)
获取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
将该值发送给PHP
将时间戳解析为PHP DateTime
对象
$tz = new DateTimeZone('+0500');
$timestampFromJs = $_POST['dispatchDate']; // or however you send it
$dispatchDate = new DateTime('@' . $timestampFromJs, $tz);
使用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)