2012-04-26 3 views
0

У меня есть список дат, как:Сравнить дату со списком дат в PHP

2012-04-11 
2012-04-29 
2012-04-26 
2012-04-23 
2012-03-21 
2012-07-23 
2012-12-19 

Я хочу, чтобы сравнить список дат с датой сегодня. Из этого я хочу список дат, которые уже прошли. Кроме того, я хочу список дат, которые находятся в Будущем. strtotime() метод

+0

[ 'StrToTime()'] (http://www.php.net/manual/en/function.strtotime.php) – deex

+0

Thnx для воспроизведения я попробовал но не работает –

+0

это дает мне вывод вроде этого -> 1137366000 –

ответ

1

Вы можете использовать strtotime() для преобразования дат в UNIX метку времени выполните простое большее/меньшее, чем тест. Сделайте что-то вроде этого:

<?php 
$past_dates = array(); 
$future_dates = array(); 
$dates = array('2012-04-11', '2012-04-29', '2012-04-26', '2012-04-23', '2012-03-21', '2012-07-23', '2012-12-19'); 
$today = date('Y-m-d'); 
foreach($dates as $value) { 
    if(strtotime($value) < strtotime($today)) { 
    $past_dates[] = $value; 
    } else if(strtotime($value) > strtotime($today)) { 
    $future_dates[] = $value; 
    } 
} 
echo 'Past dates:'; 
echo '<pre>'; 
print_r($past_dates); 
echo 'Future dates:'; 
echo '<pre>'; 
print_r($future_dates); 
echo '</pre>'; 
echo 'Today is: ' . $today; 
?> 
0

Используйте РНР:

$date = "2012-04-29"; 
$todays_date = date("Y-m-d"); 
$today = strtotime($todays_date); 
$test_date = strtotime($date); 

if ($test_date > $today) { 
    // Some Code 
} 
else { 
    // Some code 
} 
0
$dateArray = array('2012-04-11','2012-04-29','2012-04-26','2012-04-23','2012-03-21','2012-07-23','2012-12-19') 
$pastDates = array(); 
$futureDates = array(); 

foreach ($dateArray as $date){ 
    $dateTime = strtotime($date); 
    if (time() > $dateTime){ 
    $pastDates[] = $date; 
    } else { 
    $futureDates[] = $date; 
    } 
} 
0

Попробуйте http://www.php.net/manual/en/datetime.diff.php

Из инструкции:

объектно-ориентированный стиль

<?php 
$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%R%a days'); 
?> 

Procedura л стиль

<?php 
$datetime1 = date_create('2009-10-11'); 
$datetime2 = date_create('2009-10-13'); 
$interval = date_diff($datetime1, $datetime2); 
echo $interval->format('%R%a days'); 
?> 

Приведенные выше примеры будет:

+2 days 

Кроме того, возможно, вы найдете ПОЛЕЗНЫЕ.

Пример # 2 DateTime сравнение объекта

Note: 

As of PHP 5.2.2, DateTime objects can be compared using comparison operators. 
<?php 
$date1 = new DateTime("now"); 
$date2 = new DateTime("tomorrow"); 

var_dump($date1 == $date2); 
var_dump($date1 < $date2); 
var_dump($date1 > $date2); 
?> 

Приведенный выше пример выведет:

bool(false) 
bool(true) 
bool(false) 
Смежные вопросы