0

我有这种在数据库中保存日期的方法:

(DROPDOWN)月 (DROPDOWN)日 (DROPDOWN)年

我有这种方法可以节省数据库时间:

(文本框)时间(下拉)上午/下午

然后它将像这样保存在基础中:

+------------------+-----------+
|      date        |   time    |
+------------------+-----------+
| January 1, 2013  |  4:00 PM  |
+------------------+-----------+
| January 6, 2013  |  9:00 AM  |
+------------------+-----------+

我如何将数据库中的日期与计算机时间与 if else 语句进行比较?

if ("date/time in database" == "date/time in computer")
{
  echo "something stuff.";
} 

提前致谢。

4

4 回答 4

0
$date_from_db = "January 1, 2013 4:00 PM";  //just concatenate the date and time from db 

if ($date_from_db == date('F j, Y h:i A')){   
    echo "write your code";
} 

OR 

if (strtotime($date_from_db) == strtotime(date('F j, Y h:i A'))){
    echo "write your code";
}
于 2013-03-14T16:10:07.170 回答
0

转换 unix 时间戳中的日期,然后比较:

  if (strtotime($your-db-stored-date) == strtotime($now)) {
    //doSomething;
  } 

无论如何,请务必使用数据库中的适当类型保存日期...

于 2013-03-14T15:23:52.683 回答
0

为此使用 strtotime()

if (strtotime("January 1, 2013") == strtotime(date('F j, Y')))
{
   echo "something stuff.";
} 

文档链接:http ://www.php.net/manual/en/function.strtotime.php

祝你好运!!

于 2013-03-14T15:22:54.437 回答
0

不是确切的答案,但它可以帮助你......我使用这些函数将数据库中的日期时间存储为UTC,并在显示时转换为服务器时间。它考虑了夏令时。

function convert_server_datetime_to_utc() {
  return $gmdate = gmdate("Y-m-d H:i:s");
}

function convert_utc_to_server_datetime($utc=false) {
    if (empty($utc)){return false;}
    $date = new DateTime($utc);
    $hours_offset = date("Z")/60/60;
    if(substr($hours_offset, 0, 1) == "-") {
        $hours_offset = substr($hours_offset, 1);
        $invert=1;
    }
    $offset = new DateInterval('PT'.$hours_offset.'H');
    if (!empty($invert)) {$offset->invert = 1;}
    $date->add($offset);
    return $date->format("Y-m-d H:i:s");
}

echo "convert_datetime_to_utc(): " . $d = convert_server_datetime_to_utc();
echo "<hr>convert_utc_to_datetime(): " . convert_utc_to_server_datetime($d);
于 2013-03-14T15:31:49.727 回答