我有一个在线表格,其中包含一些时间数据字段。我将这些数据存储到 MySQL 数据库中的一个time
字段中,该字段需要一个 format hh:mm:ss
。如果用户正确输入了这种格式的时间,那么我想接受数据。我还希望允许用户输入标准美国时间的时间,例如9:30 am
或11:25 pm
或10:27 am
等。
基本上我想先测试时间是否是正确的数据库格式hh:mm:ss
(将其转换为数据库时间格式。如果它不是这两种格式,那么我们会显示一条错误消息并死掉。hh:mm am/pm
strtotime()
有谁知道如何测试变量的值是否与这些时间格式之一匹配?
我想做的伪PHP代码:
<?php
$value = //some time;
if (is_database_time($value)){
// good no problem
}else if (is_usa_time($value)){
$value = strtotime($value);
}else{
die("error incorrect time format, try again.");
}
?>
** 编辑 **
感谢大家的帮助。我在这里使用了一些信息来制作一个完美运行的功能:
<?php
function filter_time($key,$value){
// this section handles the storage of time data
if (preg_match('/^(0?\d|1\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)){
//do nothing
}else if (preg_match('/^(0?\d|1[0-2]):[0-5]\d\s(am|pm)$/i', $value)){
$value = date( 'H:i:s', strtotime($value));
}else{
display_error('incorrect time format in '.$key.' field.');
}
return $value;
}
?>