我想将通过HTTP POST获得的时间字符串插入带有时间戳字段的mysql表中。我该怎么办?
我的PHP代码是
$time_string="Apr 23, 2019 4:30:15 PM";
$query = $database->prepare('INSERT INTO trips(trip_start) VALUES(?)') {
$query->bind_param("s", $time_string]);
$query->execute();
trip_start是MYSQL中的时间戳数据类型
答案 0 :(得分:0)
I would recommend to use Carbon library to work with date formats as it makes this and other operations really easy. In this particular case i would do something like this:
$carbonDate = new Carbon\Carbon('Apr 23, 2019 4:30:15 PM');
$timeStamp = $carbonDate->toDateTimeString();
Now timeStamp
is a valid timestamp for mysql.
答案 1 :(得分:0)
使用PHP的DateTime将一种格式转换为另一种格式。您不需要任何依赖项,例如Carbon,对于您的用例来说这是过分夸张的。
您需要告诉PHP输入日期格式是什么,以及输出所需的内容。
您的代码将"Apr 23, 2019 4:30:15 PM"
声明为日期。在您的输入和MySQL期望的输入之间转换的代码如下:
$date = 'Apr 23, 2019 4:30:15 PM';
$input_format = 'M d, Y H:i:s A'; // Apr 23, 2019 4:30:15 PM
$output_format = 'Y-m-d H:i:s' // 2019-04-23 16:30:15
$timezone = new \DateTimeZone("UTC"); // Make sure to correctly choose your time zone
$dt = \DateTime::createFromFormat($input_format, $date, $timezone);
echo $dt->format($output_format); // echoes "2019-04-23 16:30:15"
无需外部依赖,快速,简单且易读。