Как проверить, истекла ли дата (PHP) - PullRequest
2 голосов
/ 01 апреля 2012

Привет, мой скрипт php имеет два текстовых поля (одно для месяца и одно для года). Когда пользователь нажимает кнопку отправки, он должен проверить входные данные, чтобы увидеть, истекли ли даты. Вот код, который я сделал, но он, похоже, ничего не делает.

$input_date = "$_POST['m']/$_POST['y']"; 

$todays_date = date("MM/YY");

if ($input_date < $todays_date)
{
   print '<p class = "error">Date has elapsed</p>';
}

Примечание: формат даты - ММ / ГГГГ (текстовое поле «м» содержит ММ, а текстовое поле «у» содержит ГГГГ)

Ответы [ 3 ]

5 голосов
/ 01 апреля 2012

Вы можете использовать mktime () или strtotime ()

$input_time = mktime(0,0,0,$_POST['m']+1,0,$_POST['y']); 

if ($input_time < time()){
   print '<p class = "error">Date has elapsed</p>';

}
3 голосов
/ 01 апреля 2012

Возможно, вы могли бы использовать функцию strtotime так:

$input_date = "$_POST['m']/$_POST['y']"; 
$todays_date = date("m/Y");

if (strtotime($input_date) < strtotime($todays_date)){
print '<p class = "error">Date has elapsed</p>';

}

Здесь вы можете прочитать, какие форматы может обрабатывать strtotime: http://php.net/manual/en/function.strtotime.php

2 голосов
/ 01 апреля 2012

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

<?php
$foo = array("foo" => "bar");
$input = "$foo['foo']";
print $input;
?>

Вместо этого попробуйте

$input_date = $_POST['m'] . "/" . $_POST['y'];

Также вы можете поменять местами месяц и год. В действующей схеме 01/13 предшествует 12/12.

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