比较日期修剪

时间:2010-08-02 20:21:59

标签: php

我有一个像这样

的日期的字段(nonTimeStampDate)
2010-03-15  

我想在另一个字段(timeStampDate)上检查它是

2010-03-15 15:07:45    

查看日期是否匹配。但正如你所看到的,因为格式不同,即使日期相同,它也不匹配 任何帮助将不胜感激。 感谢

6 个答案:

答案 0 :(得分:5)

我的第一个想法是使用date()strtotime()重新格式化它们。

$date1 ="2010-03-15";
$date2 = "2010-03-15 15:07:45";

if (date('Y-m-d', strtotime($date1)) == date('Y-m-d', strtotime($date2)))
{ 
   //do something 
}

这将有效,并为您提供更灵活的两个日期格式化开始。不是最优雅的。

答案 1 :(得分:4)

您可能想尝试以下代码:

if (strpos($date1, $date2) !== false)  {
  // Your code here
}

比Anax建议的空间爆炸值快一点。确保$ date2包含两个日期中较短的一个。

答案 2 :(得分:3)

如果您确定输入字符串格式,则需要将其拆分并取出第一部分,以便将其与原始日期进行比较:

$splits = explode(' ', $original);
$datapart = $splits[0];
if ($datepart == $nonTimeStampDate) {
    // your code here
}

答案 3 :(得分:2)

Anax说,或者如果这些值在MySQL表中,您可以使用MySQL的日期时间函数(如DATE())在MySQL中进行比较。

答案 4 :(得分:2)

然后,只需比较日期部分:

<?php

if( substr('2010-03-15 15:07:45', 0, 10) == '2010-03-15' ){
    echo 'Dates match';
}

?>

无论如何,如果您需要进行严格的日期处理,您需要使用正确的格式,例如DateTime对象。

答案 5 :(得分:1)

$firstDate = date("Y-m-d", strtotime("2010-03-15"));
$secondDate = date("Y-m-d", strtotime("2010-03-15 15:07:45"));     

if( $firstDate == $secondDate ) {
       // true    
}