在PHP中检查日期是12小时格式还是24小时格式?
例如,我想检查日期并将其转换为24小时格式(如果是12小时格式)在PHP中检查日期是12小时格式还是24小时格式?,php,contains,date-parsing,Php,Contains,Date Parsing,例如,我想检查日期并将其转换为24小时格式(如果是12小时格式) $date="2021-02-5 11:45:00 AM" 在我检查过之后: if (preg_match("/am|pm|AM|PM/", $date)) { $date=date('Y-m-d H:i:s',strtotime("$date")); } 我的输出应该是这样,但不能正常工作 $date=&qu
$date="2021-02-5 11:45:00 AM"
在我检查过之后:
if (preg_match("/am|pm|AM|PM/", $date))
{
$date=date('Y-m-d H:i:s',strtotime("$date"));
}
我的输出应该是这样,但不能正常工作
$date="2021-02-5 11:45:00";
但是,它不能正常工作。日期格式输入到if条件中。转换时间格式
// 24-hour time to 12-hour time
$time_in_12_hour_format = date("g:i a", strtotime("13:30"));
// 12-hour time to 24-hour time
$time_in_24_hour_format = date("H:i", strtotime("1:30 PM"));
它将返回一个DateTime对象,您可以获得所需的正确日期,如果日期字符串与模式不匹配,它将返回false
DateTime Object
(
[date] => 2021-02-05 11:45:00.000000
[timezone_type] => 3
[timezone] => UTC
)
您不需要
regex
来检查它是24小时还是12小时。您只需将日期传递给strotime
函数即可获得日期的时间戳,然后使用date
函数格式化时间戳
$date=“2021-02-5上午11:45:00”;
$date=日期('Y-m-j H:i:s',标准时间($date));
echo$date;//2021-02-5 11:45:00
使用strotime
您无法控制格式。要掌握正在发生的事情,最好使用功能丰富的类。首先将字符串转换为DateTime
对象,然后将其格式化为所需格式
当你说“不行”时,是因为你得到了05
而不是5
?你用d
问什么。格式代码已记录。“$date”
相当于$date
。您是否一直收到相同的日期格式?在php中处理日期的最佳方法是使用内部函数,例如DateTime对象,它允许您创建FromFormat,然后使用format方法对其进行转换。如果您需要答案,我可以向您展示一个示例
DateTime Object
(
[date] => 2021-02-05 11:45:00.000000
[timezone_type] => 3
[timezone] => UTC
)
date_create_from_format ( string $format , string $time , DateTimeZone $timezone = ? ) : DateTime