【发布时间】:2011-03-04 11:54:39
【问题描述】:
这是场景
我想知道像 '2011-03-04' 这样的日期和像 '17:06:00' 这样的时间是否在特定的时区中,例如 'IST/PDT/CDT' 用php 过去了吗?
有什么功能可以检查这个
$strDate = '2011-03-04 17:06:00';
$TZ = 'IST';
$strDate = '2011-02-01 11:16:30';
$TZ = 'CDT';
$strDate = '2010-08-04 07:20:00';
$TZ = 'IST';
$strDate = '2011-02-27 09:55:00';
$TZ = 'PST';
我已经尝试/搜索了整个网络,但没有任何乐趣,请帮助
是的,我使用 DateTime 进行了尝试,但它对我不起作用.. 我的服务器位于 IST TimeZone
$date = new DateTime('2011-03-04 17:06:00');
$date->setTimeZone(new DateTimeZone("PST"));
$newtime = $date->getTimestamp();
$time = time();
if ($time > $usertime)
echo 'time passed';
else
echo 'time NOT passed';
感谢tobyS,但它也失败了
$elapsedTime = new DateTime(
'2011-03-04 17:00:00', // I set it to 5PM. Now the time is 5:45 PM here in INDIA
new DateTimeZone( 'IST' )
);
$elapsedInt = $elapsedTime->diff( new DateTime() );
echo ( $elapsedInt->invert ? 'Future' : 'Past' ) . "\n";
【问题讨论】:
-
您必须在构造 DateTime 对象期间指定时区。否则,它将在您的服务器时区中创建,并且 setTimeZone() 调用将重新计算现有时间以转移到外国时区。
标签: php datetime timezone timestamp