2013-04-03 5 views
-1

В PHP я хочу, чтобы сравнить две даты формата m-d-Yсравнение дата не работает

поэтому я попытался следующий код

$strdte=trim($_REQUEST['stdate']); 
$enddte=trim($_REQUEST['enddate']); 


$today_time = $strdte; 
$expire_time = $enddte; 

if ($expire_time < $today_time) 
{ 
print '<script type="text/javascript">';print 'window.onload = function(){'; 
print 'alert("You cannot have end date before startdate")'; 
print '};';print '</script>'; 
} 

но проблема иногда работают и иногда doesn't.Could кто-нибудь сказать мне, в чем причина этой проблемы?

Заранее спасибо.

+0

Каков формат stdate и enddate? Вы выполняете сравнения строк и не сопоставляете даты. Отформатируйте эти строки до даты, а затем сравните. –

+0

Возможный дубликат [Сравнение двух дат] (http://stackoverflow.com/questions/3847736/comparing-two-dates) – deceze

ответ

0

проверить формат даты, если это строковый формат типа '04 -03-2013 ', тогда он не будет сравниваться напрямую. Вам нужно преобразовать его в strtotime (time foramt), который даст вам вторую строку, а затем вы можете сравнить ее.

strtotime($expire_time) < strtotime($today_time) 
0

Я бы превратить ваши даты в DateTime объекта затем использовать метку даты Tu сделать comparaison. Дата comparaison со строкой не является хорошей идеей. это будет выглядеть примерно так:

$start = DateTime($format,$_REQUEST['stdate']); 
$end = DateTime($format,$_REQUEST['enddate']); 

if ($end->getTimestamp() < $start->getTimestamp()) 
{ 
    print '<script type="text/javascript">';print 'window.onload = function(){'; 
    print 'alert("You cannot have end date before startdate")'; 
    print '};';print '</script>'; 
} 
+0

Какой формат я должен использовать. –

+0

Это зависит от формата, который вы получаете в $ _REQUEST. Например, формат DateTime - это «Y-m-d H: i: s» 'для даты типа« 2013-04-03 15:04:00 », которая будет форматом datetime mysql. У вас есть постоянная возможность помочь вам на странице руководства DateTime и всем возможностям здесь [ссылка] (http://www.php.net/manual/fr/datetime.createfromformat.php) – FernCoder

Смежные вопросы