2011-03-21 51 views
1

我不知道它爲什麼如此混亂,也許是因爲有很多方式輸出/輸入日期和時間與MySQL和PHP。所有我想要的就是用戶可以把日期格式使用PHP在mysql中插入/輸出日期和時間?

MM/DD/YYYY 

,併爲它的輸出以這種格式

Month Name - Date 

和時間,我希望用戶從選擇字段挑時間,從下午1點開始並增加了30分鐘,所以它將是下午1點30分,2點P.M ...我想以某種方式將其插入到MySQL並輸出爲1:30 P.M.不知道如何做到這一點。

+0

你可以做到這一點是將時間戳存儲在mysql中,然後輸出它如何使用php的日期函數(請參閱http://php.net/manual/en/function.date.php)。 – 2011-03-21 07:40:52

+0

好吧,這是有道理的,我知道如何將當前時間存儲在MySQL中,但我如何將預先選定的時間像下午1:30存儲到MySQL中。 – Ben 2011-03-21 07:45:01

+0

的好處取決於您需要在預定時間下午1:30進行什麼操作,例如,如果您希望每天下午1:30通知用戶,那麼從00:00到1:30 PM的時間戳差異將爲int (48600)... – 2011-03-21 08:20:07

回答

1

將日期格式存儲到數據庫並能夠按照您想要的方式顯示的最佳方式是使用time()date()函數。

在數據庫中存儲日期時應該使用time(),它會生成一個像這樣的字符串 - >1300695900。這個小字符串包含日期和時間

那麼你可以使用日期在任何你想要的方式來顯示它:

$time = time();//you would normally get this from the database 
date('d M Y', $time); //outputs 21 Mar 2011 
date('m-d-y', $time); // outpus 03-21-2011 

等等...

編輯: 回答你的最後一個問題,你只是得到不同的值,把它粘在一起(拼接),然後使用strtotime()

$date = $_POST['date']; // eg 03/03/2011 
$time = $_POST['time']; // eg 1:30 
$daypart = $_POST['daypart']; // eg PM 
$date_time = $date.' '.$time.' '.$daypart; 
$strtime = strtotime($date_time); 
echo date('d M Y - h:i', $strtime);// outputs 03 Mar 2011 - 01:30 
+0

好吧,我明白從數據庫中抓取日期並輸出你想要的方式。但讓我們說一個用戶在文本字段中放置「3/25/2011」,那麼如何將它存儲在mysql中,因爲日期格式爲YYYY-MM-DD。有沒有一個PHP函數將其轉換爲該格式? – Ben 2011-03-21 08:32:22

+0

使用函數strtotime()之前發送到數據庫 – Christophe 2011-03-21 08:40:35

+0

終於確定,所以我剩下的問題仍然是「你將如何存儲從下午1點30分從