2013-03-14 118 views
0

我在数据库中保存日期的这种方式:比较系统日期/时间插入日期/时间数据库

(DROPDOWN)月(DROPDOWN)天(DROPDOWN)年

我有这样在数据库中保存时间:

(TEXTBOX)时间(DROPDOWN)AM/PM

那么它将被保存在基本是这样的:

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

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

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

在此先感谢。

+2

[whathaveyoutried.com(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Dharman 2013-03-14 15:17:25

回答

0

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

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

反正一定要保存使用适当的日期型数据库中的...

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); 
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"; 
}