保存从PHP到SQL的日期/时间

Save date/time from PHP to SQL

我想保存从PHP到SQL的日期和时间。下面是要插入新记录的SQL语句(在类内的方法中找到):

1
2
INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username)
            value (:headline, :text, :date, :rating, :product_id, :username)

在我的.php页面中,我使用$_SERVER['REQUEST_TIME']调用当前日期和时间。但我仍然得到错误"日期时间值不正确"。我能用什么来确定日期?


可以生成时间戳:

1
$timestamp = date('Y-m-d H:i:s');

这应该模仿MySQL时间戳和日期时间格式。

假设mysql的时间戳与相关的php服务器同步,您也可以使用mysql当前的时间戳函数:

now()或current_timestamp或current_timestamp()。


必须是确切的请求时间吗?你可以让你的生活更轻松,简单地使用:

1
2
INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username)
            value (:headline, :text, now(), :rating, :product_id, :username)

MySQL会在您的条目写入表后插入当前日期。


您可以使用SQL自己的当前时间戳值来获取自动格式化的时间戳。

对于$_server['request_time'],您只需使用time()或microtime()即可。

如前所述,请求时间以及time()和microtime()返回一个unix时间戳,这基本上是自unix epoch以来经过的秒数,与datetime字段预期的格式不同。


1
2
date_default_timezone_set('US/Eastern');
$cur_date=date("Y-m-d");


如果您需要当前时间,可以这样做:

1
2
INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username)
INSERT INTO tbl_reviews ('$headline', '$text', CURDATE(), '$rating', '$product_id', '$username');

这只是一个猜测,但是$_server['request_time']返回一个浮点值,而不是有效的日期时间格式。