特定日期(不是现在)的日期(' Z')

时间:2013-08-15 20:24:43

标签: php

  

日期('Z') - 以秒为单位的时区偏移量。 UTC以西的时区偏移总是负的,而UTC以东的时区偏移总是正的。

所以这是现在的偏移(这个时刻)。

有没有办法在特定时间内以秒为单位获得偏移(例如:2012-02-17 12:00)。

我知道我可以使用DateTime类来实现这一点。 但是有可能只使用date()来实现这个目标吗?

编辑:

如果服务器在多伦多,那么夏天=> date('Z')=> -14400

如果服务器在多伦多,那么冬天=> date('Z')=> -18000

2 个答案:

答案 0 :(得分:4)

strtotime与日期一起使用:

$getDate = '2012-02-17 12:00';
date('Z',strtotime($getDate));

答案 1 :(得分:1)

您不能,因为您的日期时间字符串不包含任何TZ信息。如果您致电date('Z'),它将使用date_default_timezone_set()设置的TZ或.ini date.timezone默认设置。

从透视的角度来看,如果你有一个时间字符串说“这是凌晨3点”,你就不知道世界上哪一个凌晨3点了。如果我告诉你,它是GMT-6,因为我在CST,但在萨斯喀彻温省,根本没有观察夏令时,所以我的CST与其他人的CST不同。

但你不知道我在Saskatchwean。如果我说它是凌晨3点,但我实际上是在日本,那么这是一个完全不同的时区,但你绝对没有办法告诉我只是被给予“凌晨3点”我所在的时区。

充其量,您可以将服务器的本地时间与给定的时间字符串进行比较,并计算出与此相关的偏移量。例如我说现在是凌晨3点,你知道现在是凌晨5点,所以很明显我在一个比你落后2小时的地方。