Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较Javascript日期和php当前日期_Javascript_Php_Date_Time_Timestamp - Fatal编程技术网

比较Javascript日期和php当前日期

比较Javascript日期和php当前日期,javascript,php,date,time,timestamp,Javascript,Php,Date,Time,Timestamp,我正在使用以下功能: var-date=新日期() 在javascript中。它给出以下输出 “2017年5月13日星期六22:19:25 GMT+0500(巴基斯坦标准时间)” 现在我将把这个日期嵌入一个URL,在服务器端,我将收到这个日期。在服务器上,我有一个php脚本,现在在这个脚本中,我想比较从javascript客户端收到的日期和当前php时间,并检查从javascript客户端发送的日期时区和当前php日期时区之间的差异是否大于5分钟。您应该使用时间戳比较 JS: PHP: 更新:如

我正在使用以下功能:

var-date=新日期()

在javascript中。它给出以下输出

“2017年5月13日星期六22:19:25 GMT+0500(巴基斯坦标准时间)”


现在我将把这个日期嵌入一个URL,在服务器端,我将收到这个日期。在服务器上,我有一个php脚本,现在在这个脚本中,我想比较从javascript客户端收到的日期和当前php时间,并检查从javascript客户端发送的日期时区和当前php日期时区之间的差异是否大于5分钟。

您应该使用时间戳比较

JS:

PHP:

更新:如果需要时区安全比较:

JS:

PHP:


你应该改为使用unix时间戳。时间对比较很重要吗?我在javascript中也有带区域的日期时间戳,以毫秒为单位,如下所示…“149468862301”…那么我如何在php中比较它呢?@YasharAliabasi,是的,时间很重要……我需要检查用户点击链接后是否已经过了5分钟……因此在php脚本中,我需要检查是否已经过了5分钟,然后我将使链接过期。这是否也比较时区?我现在添加了时区检查。我一直认为时间戳-格林威治的秒数。我错了吗?那是真的。GMT=UTC“时区安全”版本不是时区安全的。第一个版本(使用UTC)是。
var timestamp = (new Date()).getTime(); // send this to your php
$timestampFromJs = intval($_GET["ts"]); // just made it up
$ts = time() * 1000; // js timestamp is milliseconds
if($ts - $timestampFromJs > 5000*60) ...
var timestamp = (new Date()).getTime();
$timestampFromJs = intval($_GET["ts"]); // just made it up
$date_utc = new \DateTime("now", new \DateTimeZone("UTC"));
$ts = $date_utc->getTimestamp() * 1000; // js timestamp is milliseconds
if($ts - $timestampFromJs > 5000*60) ...