PHP Включить на основе даты - PullRequest
1 голос
/ 26 января 2011

Попытка изменить включает в себя на определенную дату. Будет ли что-то вроде этой работы:

if (date('m/d/Y') < date('m/d/Y', strtotime("01/10/2011"))) {
    //Display something
}
else if (date ('m/d/Y') >= date('m/d/Y', strtotime("01/10/2011")) && date ('m/d/Y') <= date("m/d/Y', strtotime("05/10/2011"))           
    // Display something else
else {
    //Display something different
}

Если я правильно понимаю функцию strtotime, я бы подумал, что она будет работать. Но я не уверен, что правильно понимаю. Дайте мне знать!

Ответы [ 3 ]

3 голосов
/ 26 января 2011

date возвращает строку типа 2011-01-26, которую нельзя сравнить с другой строкой, например 2011-02-23, с любым полезным результатом. Вам необходимо сравнить метки времени, полученные с помощью strtotime или time:

if (time() /* (now) */ < strtotime('2011-01-26')) ...
1 голос
/ 26 января 2011

date возвращает строку, когда вы сравниваете возвращаемые значения этой функции, вы сравниваете строки. Сравнение строк в формате «m / d / Y» не сравнивает даты так, как вы этого ожидаете (однако, если бы вы использовали стандартный формат , это было бы).

Я предлагаю вам сравнить временные метки напрямую:

if (time() < strtotime('2011-01-01')) { /* include something */ }
0 голосов
/ 26 января 2011

Вы должны сравнивать временные метки (которые возвращают strtotime и time) вместо строк (которые возвращает date).

Как это:

if (time() < strtotime('01/10/2011')) {
    //Display something
}
else if (time() >= strtotime('01/10/2011') && time() <= strtotime('05/10/2011'))
    // Display something else
else {
    //Display something different
}

Редактировать : также используйте одинарные кавычки, когда вам не нужен php для их анализа. Они работают немного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...