PHP日期时间检查日期格式不同

时间:2018-05-09 09:41:36

标签: php datetime

我在检查日期时间条件时遇到了问题。

首先,我将数据库中存储的DateTime值设置为2018-05-08 15:54:40

但是,我想检查日期是否相等。

例如:

$DateInDatabase = 2018-05-08 15:54:40
$DateSpecific = 2018-05-08

if ($DateInDatabase == $DateSpecific) {
   ......
}

问题是如何仅检查$DateInDatabase

中的日期

4 个答案:

答案 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 */
}