我想保存从PHP到SQL的日期和时间。下面是要插入新记录的SQL语句(在类内的方法中找到):
INSERT INTO tbl_reviews (headline, text, date, rating, product_id, username)
value (:headline, :text, :date, :rating, :product_id, :username)
在我的.php页面中,我使用$_SERVER['REQUEST_TIME']调用当前日期和时间。但我仍然得到错误"日期时间值不正确"。我能用什么来确定日期?
可以生成时间戳:
$timestamp = date('Y-m-d H:i:s');
这应该模仿MySQL时间戳和日期时间格式。
假设mysql的时间戳与相关的php服务器同步,您也可以使用mysql当前的时间戳函数:
now()或current_timestamp或current_timestamp()。
- 1?投反对票的人能解释这个答案的问题是什么吗?
必须是确切的请求时间吗?你可以让你的生活更轻松,简单地使用:
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字段预期的格式不同。
这里很可能是无关的,但也值得注意的是,$u server['request_time']返回请求开始的时间戳,而不是那个时刻的时间戳(microtime和time做的)。
date_default_timezone_set('US/Eastern');
$cur_date=date("Y-m-d");
。
如果您需要当前时间,可以这样做:
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']返回一个浮点值,而不是有效的日期时间格式。