使用if语句的php到期日期

时间:2011-04-16 16:45:35

标签: php datetime date time if-statement

我正在尝试将字符串与当前日期匹配。在if语句中,如果字符串等于或小于当前日期,我想要回显仍处于活动状态,但它已经传递了cstring返回已过期。使用以下代码,它总是返回过期,时区是phenix / arizona而不是洛杉矶,我该如何解决这两个问题

$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';
}

2 个答案:

答案 0 :(得分:3)

我使用了以下代码,它似乎有效。希望这有帮助!

    <?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';

    } ?>

答案 1 :(得分:1)

  1. 首先更改时区,然后再更改时区。
  2. 比较strtotime的值而不是日期字符串。 strtotime返回一个整数,而date返回一个格式化的字符串。