如何根据 am/pm 值格式化一个字符串,以便它可以通过 strtotime 和 date 传递?
我有一个包含两个输入和一个选择元素的表单。
- 小时(输入)<-(字符串)从 1 到 12
- 分钟(输入)<-(字符串)从 0 到 59
- 上午/下午(选择)<-(字符串)上午或下午
需要向 MySql 中插入 DATETIME 类型,它需要格式化为当前日期 + 用户选择的时间。
可能的字符串:'2:34:pm' 插入格式为 '2012-03-22 14:34:00'
我阅读了可能重复的问题,但我认为情况不同。
最佳答案
第一步
生成 UNIX 时间戳(自 1970 年 1 月 1 日以来的秒数)。
$time = mktime($_POST["hour"], $_POST["minute"], 0);
$_POST["hour"]
应采用 24 小时格式。您需要进行基本的输入检查以确保 $_POST["hour"]
和 $_POST["minute"]
的值有效。
将 12 小时制转换为 24 小时制:
if ($_POST["ampm"] == "pm")
$_POST["hour"] = ($_POST["hour"] % 12) + 12;
第 2 步
存储到 MySQL。
mysql_query("INSERT INTO table (date) VALUES (FROM_UNIXTIME($time))");
FROM_UNIXTIME(timestamp)会将 PHP 的 UNIX 时间戳转换为格式完美的 MYSQL 日期。
急!
关于php - 为 MYSQL 格式化时间 12 小时制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844863/