10

我正在尝试将 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. 多谢您的支持!

4

7 回答 7

26

这可能对您有用:

$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');";
于 2013-05-09T09:00:31.097 回答
1

这对我有用:

//timestamp fix
$date = new \DateTime();
$created_at = $date->setTimestamp(intval($timestamp));
于 2015-05-28T03:53:26.947 回答
1

我们在MySQLNOW()中有函数。

insert into sale(service, amount, date, customerid_fk)values('$service', '$amount', NOW(), '$id');
于 2018-05-05T06:42:46.773 回答
0

您需要删除放置时间戳的顶点

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

或将此格式用于日期 'Ymd H:i:s'

于 2013-05-09T08:51:29.797 回答
0

如果您有日期字段类型,DATE否则DATE/TIME它将添加这样的时间戳。您需要将日期字段类型设置为 varchar 并将时间戳添加为字符串。

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

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

于 2013-05-09T08:53:21.823 回答
0

你应该使用mysql方法

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

2016 年 8 月 25 日

然后

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

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date);
于 2016-08-26T19:59:10.310 回答
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');"
于 2016-01-06T08:50:36.750 回答