2012-04-26 118 views
0

最新名单我有这样一个日期列表:比较日期与PHP

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

我想比较今天日期日期列表。从那我想要一个已经过去的日期列表。另外,我想要一个未来日期列表。

+0

['的strtotime()'](http://www.php.net/manual/en/function.strtotime.php) – deex 2012-04-26 11:30:54

+0

日Thnx重播我都试过,但它不工作 – 2012-04-26 11:34:05

+0

它给我这样的输出 - > 1137366000 – 2012-04-26 11:36:50

回答

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

使用PHP的strtotime()方法:

$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 L型

<?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)