比较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) ...