0

私は次のような日付リストを持っています:

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

日付リストと今日の日付を比較したい。そこから、すでに過去の日付のリストが必要です。また、将来の日付のリストが必要です。

4

4 に答える 4

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;
?>
于 2012-04-26T12:00:11.250 に答える
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
} 
于 2012-04-26T11:32:05.363 に答える
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;
  }
}
于 2012-04-26T11:53:50.953 に答える
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');
?>

手続き型

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

また、多分あなたは役に立つでしょう。

例2DateTimeオブジェクトの比較

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)
于 2012-04-26T11:59:55.477 に答える