【问题标题】:Compare Javascript date with php current date将 Javascript 日期与 php 当前日期进行比较
【发布时间】:2017-05-15 00:25:24
【问题描述】:

我正在使用该功能:

var date = new Date();

在javascript中。它给出以下输出

"Sat May 13 2017 22:19:25 GMT+0500 (Pakistan Standard Time)"

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

【问题讨论】:

  • 您应该改用 unix 时间戳。
  • 时间对比较重要吗?
  • 我在 javascript 中也有日期时间戳和以毫秒为单位的区域,就像这样......“1494688862301”......所以我如何在 php 中比较它?
  • @YasharAliabasi,是的时间很重要.....我需要检查自用户点击链接后是否已经过了 5 分钟......所以在 php 脚本中我需要检查是否已经过了 5 分钟,然后我会使链接过期

标签: javascript php date time timestamp


【解决方案1】:

您应该使用时间戳比较。

记者:

var timestamp = (new Date()).getTime(); // send this to your php

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();

PHP:

$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) ...

【讨论】:

  • 这也比较时区吗?
  • 我现在添加了时区检查。
  • 我一直认为时间戳 - 格林威治的秒数。我错了吗?
  • 确实如此。格林威治标准时间 = UTC
  • “时区安全”版本时区不安全.第一个版本(使用 UTC)是。
猜你喜欢
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2016-07-24
  • 1970-01-01
相关资源
最近更新 更多