如何在PHP中比较yyyy mm dd格式的日期字符串

如何在PHP中比较yyyy mm dd格式的日期字符串,php,Php,我有一个字符串格式的日期范围,格式为 '2014-10-12' 我想做的是比较这些日期,这样我就可以得到最老和最年轻的日期 在PHP中,如何将这些转换为可以执行以下操作的格式 $oldestdate; $youngesdate; //loop though all the dates if($exampledate < $youngesdate) $youesdate = $exampledate; if($exampledate > $oldestdate)

我有一个字符串格式的日期范围,格式为

'2014-10-12' 
我想做的是比较这些日期,这样我就可以得到最老和最年轻的日期

在PHP中,如何将这些转换为可以执行以下操作的格式

$oldestdate;
$youngesdate;

//loop though all the dates
if($exampledate < $youngesdate)
    $youesdate = $exampledate;

if($exampledate > $oldestdate)
    $oldestdate = $exampledate;
$oldestdate;
$youngesdate;
//循环浏览所有日期
如果($exampledate<$youngesdate)
$youesdate=$exampledate;
如果($exampledate>$oldestdate)
$oldestdate=$exampledate;

谢谢

您是否尝试过strotime?参考文献


然后,您可以轻松地与
等进行比较。

YYYY-MM-DD样式日期的优点在于,无论是作为文本(如您的示例)、数字(如20141012)还是实际日期处理,它们都将始终正确排序

因此,只要格式相同,就不需要做任何特殊的比较。您编写的代码应该按原样工作(除了$youngestdate的拼写错误)

请注意,如果您除了比较它们之外还想做任何事情,例如,任何实际涉及将它们视为实际日期的事情,那么您确实需要类似strotime()或mktime()+substr()的组合,您是否尝试过checkdate(12,31,2000)

在1和32767之间(含1和32767)的年份。请查看php.net链接中的post2


您应该使用DateTime类

$arr = ['2012-10-12', '2004-10-12', '2014-08-12', '2014-09-12', '2014-09-13', '2014-09-11'];

$_now = new DateTime('now');

foreach ( $arr as $_t ) {

    $d = new DateTime ( $_t );

    if ( !isset($newest) || $d >= $newest ) $newest = $d;

    if ( !isset($oldest ) || $d <= $oldest ) $oldest = $d;    

}    

echo 'Newest ' . $newest->format('Y-m-d');
echo 'Oldest' . $oldest->format('Y-m-d');

$arr=['2012-10-12'、'2004-10-12'、'2014-08-12'、'2014-09-12'、'2014-09-13'、'2014-09-11'];
$_now=新日期时间(“now”);
外汇($arr as$\U t){
$d=新日期时间($\t);
如果(!isset($latest)|$d>=$latest)$latest=$d;
如果(!isset($oldest)| |$d格式('Y-m-d');
回显“最早的”。$最早的->格式('Y-m-d');
请看这里:


这里有一个

使用
strotime()
函数我肯定有人告诉我dosnt适用于1970年以前的日期,我会尝试一下,不过Thansky你也可以使用一个简单的字符串比较(如果格式不变)。