我有一个像这样
的日期的字段(nonTimeStampDate)2010-03-15
我想在另一个字段(timeStampDate)上检查它是
2010-03-15 15:07:45
查看日期是否匹配。但正如你所看到的,因为格式不同,即使日期相同,它也不匹配 任何帮助将不胜感激。 感谢
答案 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
}