我在检查日期时间条件时遇到了问题。
首先,我将数据库中存储的DateTime值设置为2018-05-08 15:54:40
但是,我想检查日期是否相等。
例如:
$DateInDatabase = 2018-05-08 15:54:40
$DateSpecific = 2018-05-08
if ($DateInDatabase == $DateSpecific) {
......
}
问题是如何仅检查$DateInDatabase
答案 0 :(得分:0)
如果您只对年 - 月 - 日感兴趣,我的建议将是:
// As per comments, the second param in the date function MUST be a UNIX timestamp, so strtotime will resolve this
$dateInDB = date("Y-m-d", strtotime($DateInDatabase)); // format to XXXX-XX-XX
$dateToCheck = date("Y-m-d", strtotime($DateSpecific)); // format to XXXX-XX-XX
if ($dateInDb == $dateToCheck)
{
// They are the same
}
else
{
// The are different
}
正如其他人所说,你也可以使用直接字符串比较;
$DateInDatabase = "2018-05-08 15:54:40";
$DateSpecific = "2018-05-08";
// This function uses the params haystack, needle in that order
if (stristr($DateInDatabase, $DateSpecific))
{
// Match found
}
else
{
// No match found
}
答案 1 :(得分:0)
这将检查您的日期是否相等。请注意,PHP的date
函数在一年中有多大的限制。最小值为01-01-1970
,最大值为19-01-2038
(此处使用的d-m-Y
格式)。日期将转换为整数(strtotime
)。如果这些数字相等,则日期相等。
$DateInDatabase = '2018-05-08 15:54:40'
$DateSpecific = '2018-05-08'
$newDate1 = date("Y-m-d", strtotime($DateInDatabase));
$newDate2 = date("Y-m-d", strtotime($DateSpecific));
if ($newDate1 == $newDate2) {
//equal
} else {
//not equal
}
答案 2 :(得分:0)
您可以使用php日期方法格式化日期:
$DateInDatabase ='2018-05-08 15:54:40';
$DateSpecific = '2018-05-08';
if (date('Y-m-d', strtotime($DateInDatabase)) == $DateSpecific) {
echo 'ok';
} else {
echo 'not ok';
}
从here
了解更多关于php日期方法的信息答案 3 :(得分:0)
您可以直接匹配为字符串或解析为日期,然后格式化为字符串。
鉴于$DateInDatabase = '2018-05-08 15:54:40'
和$DateSpecific = '2018-05-08'
if (false !== strpos($DateInDatabase,$DateSpecific)) {
/* matched */
}
OR
$format = 'Ymd';
$DateInDatabase = (new DateTime($DateInDatabase))->format($format);
$DateSpecific = (new DateTime($DateSpecific))->format($format);
if ($DateInDatabase === $DateSpecific) {
/* matched */
}