我正在尝试将字符串与当前日期匹配。在if语句中,如果字符串等于或小于当前日期,我想要回显仍然活跃,但如果它已经通过了cstring返回过期。使用下面的代码,它总是返回过期,时区是phoenix/arizona而不是Los Angeles我如何解决这两个问题
$current_date = date('F j Y g:i A e', strtotime('now'));
$expiration_date = date('F j Y g:i A e', strtotime('March 16 2011 9:29 am pst'));
date_default_timezone_set('America/Los_Angeles');
if ($expiration_date < $current_date) {
echo 'Still Avtive';
}
else
if ($expiration_date == $current_date) {
echo 'Still Avtive';
}
else {
echo 'Time Expired';
}
我使用了下面的代码,它似乎可以工作。希望这对你有帮助!
<?php
date_default_timezone_set('America/Los_Angeles');
// Set your desired Expiration Date here, using correct lettercases
$exp_date = "June 1 2011 9:29 AM PST";
// Using Capital 'A' in date() need capital in $exp_date: 'AM'. 'a' means lowercase 'am'
$todays_date = date("F j Y g:i A e");
$today = strtotime($todays_date);
$expiration_date = strtotime($exp_date);
if ($expiration_date > $today) {
echo 'Still Active';
} else {
echo 'Time Expired';
} ?>
- 先更改时区,再更改。
- 比较strtotime的值,而不是日期字符串。strtotime返回整数,而date返回格式化字符串。