2017-03-07 112 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