2013-05-09 36 views
5

我試圖將PHP中的日期字符串保存到MySQL數據庫中作爲時間戳記數據類型。我發現了很多關於這個的帖子,但是他們都沒有爲我工作。這是我已經試過:將PHP日期字符串保存到MySQL數據庫中作爲時間戳記

$date = $_POST['date']; 
$timestamp = date("m/d/Y", strtotime($date)); 
$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 

但在數據庫中,我只得到:

0000-00-00 00:00:00 

從POST對象輸入字符串爲05/30/2013。多謝您的支持!

+0

在MySQL中期望的' Ymd'格式的時間戳。相應地更改格式字符串,你會很好。 – 2013-05-09 08:50:35

+0

你已經檢查過了嗎? http://stackoverflow.com/questions/2501915/convert-date-string-to-mysql-datetime-field – Madthew 2013-05-09 08:51:02

+0

http://stackoverflow.com/questions/7112982/converting-string-to-mysql- timestamp-format-in-php是你所需要的。 – Anvesh 2013-05-09 08:52:51

回答

14

這可能會爲你工作:

$date = $_POST['date']; 
$timestamp = date('Y-m-d H:i:s', strtotime($date)); 

$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 
+1

謝謝!有效。 – doonot 2013-05-09 14:26:34

0

您需要刪除頂點認沽時間戳只要

insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', $timestamp, '$id') 

或使用這種格式的日期「YMD H:I:S」

0

,如果您有日期字段類型爲DATEDATE/TIME它會添加像這樣的時間戳。您需要將日期字段類型設置爲varchar並將時間戳添加爲字符串。

,如果您需要在格式d/M添加日期/ y,則MySQL有像y-m-d不同的格式,所以之前加入,你可以做這樣的

date('y-m-d', strtotime('your-date-string'))

0

這爲我工作:

//timestamp fix 
$date = new \DateTime(); 
$created_at = $date->setTimestamp(intval($timestamp)); 
0
SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00'); -- **1111885200** 
SELECT FROM_UNIXTIME(1111885200);    -- **2005-03-27 03:00:00** 
$date = $_POST['date']; 
$timestamp = date('Y-m-d H:i:s', strtotime($date)); 

$sql = "insert into sale(service, amount, date, customerid_fk) values 
    ('$service', '$amount', UNIX_TIMESTAMP('$timestamp'), '$id');" 
0

,你應該使用MySQL的方法

我得到了這個日期從easyui

2016年8月25日

一個datebox然後

$date = "FROM_UNIXTIME(".strtotime(08/25/2016).")"; 

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date); 
相關問題