【发布时间】:2018-05-23 15:38:00
【问题描述】:
我正在使用 PHP laravel 框架开发一个 Web 应用程序。我现在正在做的是我试图插入日期时间值,包括用户给出的毫秒数。但它抛出了无效的日期时间格式错误。
这是我的代码
$image = new Image;
$image->date_taken = date('Y-m-d H:i:s u',strtotime($date_and_time." ".$milliseconds)); //milliseconds is something like 0, 435, 455656
$image->save();
当我运行代码时,它给了我这个错误。
SQLSTATE[22007]: Invalid datetime format: 7 ERROR: invalid input syntax for type timestamp: "1970-01-01 00:00:00 000000" (SQL: insert into "images" ("event_id", "user_id", "visibility", "s3_path", "file_hash", "date_taken", "taken_at_tag", "updated_at", "created_at") values (1, 101, 1, RWGV7HMW/iljimae.ic@gmail.com/wPxi5AkW0VzUfc0e5Xu4xQw27sdVXttAqMWUU1Cx.jpeg, ca5544c371b7c6a0eedc03b04e44f36f, 1970-01-01 00:00:00 000000, 124216-097, 2018-05-23 15:32:02, 2018-05-23 15:32:02) returning "id")
如何格式化包含毫秒的日期时间并插入 MySQL 数据库?
【问题讨论】:
-
这行代码中的'u'代表什么
$image->date_taken = date('Y-m-d H:i:s u' -
毫秒。
-
u是微秒,v是毫秒。 php.net/manual/en/function.date.php -
我认为正确的格式是
Y-m-d H:i:s.u或Y-m-d H:i:s.v。注意秒和微/毫秒之间的时间段。 -
是的。你说的对。最后一条评论对我有帮助。