我试图将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
。非常感谢您的支持!
答案 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)
如果日期字段类型为DATE
或DATE/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');