php - 将 PHP 变量 "11:00 AM"转换为 MySQL 时间格式

标签 php mysql time

尝试将标准时间变量从表单输入转换为 MySQL INSERT 可接受的 TIME 格式。我可能做错了,需要一些帮助。我已经通读了 MySQL TIME 函数和 PHP TIME 函数,但还没有找到解决方案。

这是我尝试过的示例:

<?php
$time_input = '11:00 AM';

$strtotime = strtotime($time_input);

$mysql_time = date('H:m:s',$strtotime);

echo "<p>time_input: $time_input</p>";
echo "<p>strtotime: $strtotime</p>";
echo "<p>mysql_time: $mysql_time</p>";
?>

结果是将时间更改为 11:08:00(不确定 8 分钟是从哪里来的):

time_input: 11:00 AM

strtotime: 1344438000

mysql_time: 11:08:00

非常感谢任何帮助!

最佳答案

DateTime将为您做这件事:

$time_input = '11:00 AM';
$date = DateTime::createFromFormat( 'H:i A', $time_input);
$formatted = $date->format( 'H:i:s');

我通常尽可能避免使用 strtotime(),因为它可能有些不可预测。

您可以在 this demo 中看到它的工作原理.

关于php - 将 PHP 变量 "11:00 AM"转换为 MySQL 时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874330/

相关文章:

php - 在不创建竞争条件的情况下为上传生成基于时间的唯一文件名

c - clock_t、time_t 和 struct tm 有什么区别?

c - `gmtime()` 会在闰秒时将秒数报告为 60 吗?

java - 文件 lastModified() 返回 Wed Dec 31 19 :00:00 EST 1969

php - MySQL/PHP 错误 : Input a value with an apostrophe ( ' )

php - Silex 中的可选路由参数

mysql - 尝试编写一个查询来计算具有不同情况的多个事物

mysql - 使用表中的子查询进行缓慢的 MySQL 查询

php - 将数据插入 MongoDB 中的内部数组

php - 当连接在没有提交或回滚的情况下关闭时,mysqli 事务会发生什么?