2011-06-14 47 views
0

在我的CodeIgniter應用程序中,我使用了一個Jquery日曆彈出窗口,它也捕獲用戶設置的時間,所以最終結果如下所示:MM-DD-YYYY HH:MM,我將它存儲在MySQL中的日期時間字段是:YYYY-MM-DD HH:MM:SS。什麼是最好的(最有效的)方式將日期/時間推送到MySQL中,以便正確保存並拉回MySQL,並以反向格式將其呈現在屏幕上?謝謝!CodeIgniter/JQuery/MySQL DateTime

回答

1

最有效的方法是使用ISO 8601標準在客戶端和服務器之間傳遞日期值。由於客戶端和服務器使用字符串進行交談,因此在將數據發送到任何一種方法之前,都會先將日期解析爲字符串我喜歡最好的格式是合併的日期和時間UTC

2011-06-14T13:57Z

有沒有空間,它的清潔。然後你必須parse it on the server side(使用PHP應該相對容易)並在客戶端解析它。

出於顯示目的,我更喜歡extend JavaScript's Date.prototype以包含模仿PHP's date format的格式函數。

一旦你從上面包含鏈接的腳本,你可以在服務器端做到這一點 -

var today = new Date(); 
alert(today.format('m-d-Y H:i')); //displays "06-14-2011 11:18" 

祝你好運!

0

我認爲你應該使用strptime()功能解析您的使用和使用mktime()從jQuery日曆收到日期:

// Parse the time based on your jQuery calendar's format 
$parts = strptime($calendar_value, '%m-%d-%Y %H:%M'); 

if (! empty($parts)) 
{ 
    // Create a Unix timestamp 
    $timestamp = mktime($parts['tm_hour'], $parts['tm_min'], 0, $parts['tm_mon'] + 1, $parts['tm_mday'], $parts['tm_year'] + 1900); 

    // Create a string representation of the Unix timestamp 
    $date = date(DATE_ISO8601, $timestamp); 
} 

你要使用$date在你的數據庫中插入。有一個叫做「strtotime」的函數,它會試圖解析日期格式,但我懷疑它能夠確定月份或日期是否在先,特別是如果它們都低於12,這就是我選擇改爲使用「strptime」。

當你從MySQL提取數據,然後你可以簡單地使用date()strtotime()功能來填充日曆:

echo date('m-d-Y h:i', strtotime($mysql_date));