将PHP日期字符串保存为MySQL数据库作为时间戳

时间:2013-05-09 08:47:12

标签: php mysql date format timestamp

我试图将PHP中的日期字符串保存为MySQL数据库作为timestamp数据类型。我发现了很多关于这个的帖子,但没有一个对我有用。这就是我尝试过的:

$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。非常感谢您的支持!

7 个答案:

答案 0 :(得分:19)

这可能对您有用:

$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 :(得分:0)

你需要删除apex for put timestamp

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

或将此格式用于日期'Y-m-d H:i:s'

答案 2 :(得分:0)

如果日期字段类型为DATEDATE/TIME,则会添加此类时间戳。您需要将日期字段类型设置为varchar,并将时间戳添加为字符串。

如果你需要以d / m / y格式添加日期,那么mysql有不同的格式,如y-m-d,所以在添加之前你可以这样做

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

答案 3 :(得分:0)

这对我有用:

//timestamp fix
$date = new \DateTime();
$created_at = $date->setTimestamp(intval($timestamp));

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

答案 5 :(得分:0)

你应该使用mysql方法

我从easyui的日期框中得到了这个日期

2016年8月25日

然后

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

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date);

答案 6 :(得分:0)

我们在 MySQL 中有NOW()个功能。

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