28

我不敢相信我不能这样做,但我希望能够将当前日期和时间从 php 存储到 mysql 表中。

表中的列是日期时间类型。我试过这个

$current_date = date("Y-m-d");
$my_date = strtotime($current_date);
INSERT INTO my_table (date_time) VALUES ('$my_date')

但我的时间戳显示为 0000-00-00 00:00:00

这一定很容易做到,但我就是不能让它工作!我想使用 php 的时间戳,而不是使用 mysql now() 函数

4

6 回答 6

48

试试这个:

$my_date = date("Y-m-d H:i:s");
INSERT INTO my_table (date_time) VALUES ('$my_date');

在 date 函数的 date-format 参数中,使用 :
'H' 表示 24 小时格式
'h' 表示 12 小时格式

于 2012-12-02T16:29:54.733 回答
25

不要将其保存为 Unix 时间戳(strtotime()输出),而是将其保存为 DATETIME 列中的“2012-12-02 13:00”。

于 2012-12-02T16:27:52.973 回答
2

创建列类型 TIMESTAMP 并将其设置为 NOT NULL。然后在 INSERT 期间传入 NULL,MySQL 将插入当前日期和时间。这对我有用。

于 2013-10-22T07:26:45.843 回答
2

将名为 'date_time' 的列的 'type' 设置为 'DATETIME' 并运行以下查询:

INSERT INTO my_table (`date_time`) VALUES (CURRENT_TIMESTAMP)
于 2014-03-04T13:43:14.207 回答
1

如果你在 PHP 中有日期作为时间戳,你可以使用 FROM_UNIXTIME 函数 [1]

mysql> insert into table_name values (FROM_UNIXTIME(your_timestamp_here));

希望它有所帮助

[1]。https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime

于 2015-07-27T05:01:13.307 回答
1

删除 strtotime()

$current_date = date("Y-m-d");
INSERT INTO my_table (date_time) VALUES ('$current_date')

如果要包括小时、分钟和秒, $current_date = date("Ymd H:i:s");

于 2015-12-29T12:51:52.460 回答