日期('Z') - 以秒为单位的时区偏移量。 UTC以西的时区偏移总是负的,而UTC以东的时区偏移总是正的。
所以这是现在的偏移(这个时刻)。
有没有办法在特定时间内以秒为单位获得偏移(例如:2012-02-17 12:00)。
我知道我可以使用DateTime类来实现这一点。 但是有可能只使用date()来实现这个目标吗?
编辑:
如果服务器在多伦多,那么夏天=> date('Z')=> -14400
如果服务器在多伦多,那么冬天=> date('Z')=> -18000
答案 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小时的地方。