如何根据am / pm值格式化字符串,以便它可以通过strtotime和date传递?
我有一个包含两个输入和一个选择元素的表单。
需要插入MySql类型DATETIME,需要格式化为当天+用户选择的时间。
可能的字符串:'2:34:pm',插入格式为'2012-03-22 14:34:00'
我读过可能重复的问题,但我认为是不同的情况。
答案 0 :(得分:1)
第1步
生成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日期。
的Presto!
答案 1 :(得分:0)
假设您的变量名为$hour
,$minute
和$ampm
:
$datetime = date('Y-m-d')
. sprintf(
' %02d:%02d:00',
($ampm == 'pm' ? ($hour % 12) + 12 : $hour % 12),
$minute
);