Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中检查日期是12小时格式还是24小时格式?_Php_Contains_Date Parsing - Fatal编程技术网

在PHP中检查日期是12小时格式还是24小时格式?

在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

例如,我想检查日期并将其转换为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="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