дата истечения срока действия php с оператором if - PullRequest
2 голосов
/ 16 апреля 2011

Я пытаюсь сопоставить строку с текущей датой. В операторе if, если строка равна или меньше текущей даты, я хочу, чтобы эхо все еще было активным, но оно прошло возврат cstring, истекший. с помощью следующего кода он всегда возвращает истекший, и часовой пояс - это Феникс / Аризона, а не Лос-Анджелес. Как я могу исправить эти две проблемы

$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 ]

3 голосов
/ 01 июня 2011

Я использовал следующий код, и он, кажется, работает. Надеюсь, это поможет!

    <?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 голос
/ 16 апреля 2011
  1. Сначала измените часовой пояс, прежде чем что-либо еще.
  2. Сравните значения из strtotime вместо строк даты. strtotime возвращает целое число, а date возвращает отформатированную строку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...