【问题标题】:PHP unix timestamp compare [duplicate]PHP unix时间戳比较[重复]
【发布时间】:2015-12-19 05:37:58
【问题描述】:

我的数据库中存储了一个事件日期和时间,它被保存为 PHP unix 时间戳。我试图检查今天是否大于事件日期和时间。

问题是 - 我正在尝试使用当地时间(美国/纽约)检查它,但我得到了 2 个不同的时区。 time() 以 EST 显示,我的数据库以 UTC 显示

有什么方法可以正确检查吗?

来自数据库的我的活动日期: 1450447200(2015年12月18日下午2点)

我试图将它与 php time() 进行比较

我可能做错了吗?

*更新 - 答案*

根据this answer 我最终这样做了:

$utc_str = gmdate("M d Y H:i:s", time());
$today = strtotime($utc_str);

$event_datetime = $Event_timestamp;
date_default_timezone_set("America/New_York");
$utc_str_event = gmdate("M d Y H:i:s", $event_datetime);
$event_date = strtotime($utc_str_event);
if($today >= $event_date){
    //Do Something
}

【问题讨论】:

  • time“显示 EST”,除非你的电脑时钟完全搞砸了。

标签: php time unix-timestamp


【解决方案1】:

您在服务器上的日期可能有误。 time() 总是应该返回纪元(纪元 = UTC)。

顺便说一句。在数据库中将日期保存为 int 这不是最佳做法

【讨论】:

  • 我很清楚 - 我的问题是它是通过插件完成的,我不想弄乱代码。
【解决方案2】:

我不知道这是否正确,但您是否尝试过使用date_default_timezone_set

【讨论】:

  • time() 与时区无关
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多