簡體   English   中英

PHP:帶有preg_match的正則表達式

[英]PHP: regular expression with preg_match

我是php新手,正在學習正則表達式。 我正在嘗試使用preg_match將標准時間轉換為軍事時間。 輸入的數據格式為“ 1991年9月6日下午6:23”。 在代碼的其他地方,我已經使用正則表達式將數據分成具有“月”,“日”,“年”,“小時”和“分鍾”元素的數組。 我試圖告訴程序查看數據,如果它以PM結尾,則將12添加到“小時”元素中。 這是我的代碼:

    if (preg_match("/[A-Za-z0-9,:\s]*[PM]/", $original_data)) {
        $broken_data[$j][3]= $broken_data[$j][3] + 12;
    }

其中$ original_data是格式為“ 1991年9月6日下午6:23”的字符串,而$ broken_data是上述數組。 如果有任意數量的AZ,az,0-9,:,逗號或空格后跟PM,則我認為preg_match所做的事情(打算這樣做)將返回true。 這怎么了

先感謝您!

您可以完全跳過preg_match並使用strtotime()和str_replace()

但是,當字符串中有“ at”時,您使用的格式會中斷,這就是為什么我們使用str_replace擺脫它的原因。

// converts to "September 6, 1991 6:23PM"
$time = str_replace(" at ", " ", "September 6, 1991 at 6:23PM"); 
// You will need to change this to the format you want outputted
echo date("M d, Y H:i" , strtotime($time));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM