将系统日期/时间与插入日期/时间与数据库进行比较

时间:2013-03-14 15:15:54

标签: php html datetime if-statement

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

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

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

(TEXTBOX)时间(DROPDOWN)AM / PM

然后它会像这样保存在基座中:

+------------------+-----------+
|      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 个答案:

答案 0 :(得分:0)

使用strtotime()

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

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

好运!

答案 1 :(得分:0)

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

  if (strtotime($your-db-stored-date) == strtotime($now)) {
    //doSomething;
  } 
无论如何,请确保使用数据库中的相应类型保存日期...

答案 2 :(得分: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);

答案 3 :(得分: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";
}