2017-03-07 55 views
0

只是看看,以驗證在以下日期7月3日/ 2017-15:54:42,以確保這種格式已經被使用,但無法找到一個正則表達式的作品以格式d/m/Y-H驗證日期和時間:i:s?

+0

分享你的研究可以幫助每個人。告訴我們你試過了什麼,以及它爲什麼不符合你的需求。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案!另見:[問] –

回答

0

一個非常簡單的,不準確的方法是使用像下面這樣的正則表達式:

/\d{2}\/\d{2}\/\d{4}-\d{2}:\d{2}:\d{2}/ 

它只是驗證字符串有一些斜槓,冒號和破折號分開的數字的正確的號碼。描述here的更復雜的構建正則表達式的方法。您可以將其添加並添加自己的部件進行時間驗證,但使用四位數年份的模式,月份格式和日期格式的模式。

一個更可靠的方法是嘗試從您的字符串創建一個DateTime對象:

DateTime::createFromFormat('d/m/Y-H:i:s', '17/03/2017-15:54:42') 
/* DateTime {#173 
    +"date": "2017-03-17 15:54:42.000000", 
    +"timezone_type": 3, 
    +"timezone": "Asia/Jerusalem", 
    } 
*/ 

如果你用錯誤的字符串試試吧,你會得到false結果:

DateTime::createFromFormat('d/m/Y-H:i:s', '17.03/2017-15:54:42') 
// false