如何在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你也可以使用一个简单的字符串比较(如果格式不变)。