8

尝试将标准时间变量从表单输入转换为 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

任何帮助深表感谢!

4

2 回答 2

10

DateTime将为您执行此操作:

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

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

您可以在此演示中看到它的工作原理。

于 2012-08-08T22:52:39.157 回答
4

m是带有前导零的月份的格式(8 月,即 08),您想要i(带有前导零的分钟):

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

PHP 日期文档

于 2012-08-08T22:55:17.190 回答