2012-01-28 125 views
0

我想创建一个函数来验证日期字符串。PHP日期时间::格式

我的模块显示日期,在后端有一些用户可用来在前端显示日期的示例格式,还有一个高级日期格式输入,他可以指定日期格式字符串,如'H:我:'或他想要的任何东西。

如果未指定高级格式选项,则使用默认格式。

要检查输入的enterred格式的有效性,我想我可以这样做:

$现在=新的日期时间(“现在”);

如果(!$现在 - >格式($格式))....虚假格式

但格式方法不返回false,如果$格式= x或efkjfkefefje,它只是返回字符串本身。

我想它返回false如果有一个不同于这里指定caracters一个卡拉科特:http://www.php.net/manual/en/function.date.php

但有这么多的情况下。例如'H:i:s'是有效的,但'他'不会。

我不希望它解析':'或'/',我的意思是我们可以认为'H/i/s'是有效的,因为它只是针对高级用户的输入。

如果一个字符不同于这里的列表http://www.php.net/manual/en/function.date.php,或者在字符之间没有空格,那么我希望它返回false:'His'无效,而3个字符单独存在。

我对正则表达式不是很熟悉。

+0

如果我喜欢我的日期是“他的”,该怎么办?像冒号和斜杠这样的分隔符是为了pussies,我喜欢他们的日期稳定。我也喜欢这个日期,说:“我在'他的'上有钢球。”但是你会考虑这种错误的格式。除了开玩笑,我认为如果这是为了高级用户,让他们按照自己的喜好进行格式化。 – dmedvinsky 2012-01-28 07:41:37

+0

是的,你是对的。谢谢。其实我可以保留我的解决方案,如果它显示字符串本身,他会改变格式。它仅适用于高级用户 – adieuuu 2012-01-28 07:44:47

回答

3

要验证日期格式字符串,您应该可以使用DateTime :: createFromFormat。

http://www.php.net/manual/en/datetime.createfromformat.php

它,如果它的成功创建,或假,如果提供的日期字符串不匹配的格式返回无论是DateTime对象。

+0

谢谢:)这是最好的方法。 – adieuuu 2012-01-28 07:49:00

+0

如果没有人在一段时间后发布更好的答案,请随时注册并将其标记为已接受:p。 (呜呜呜!:)) – Corbin 2012-01-28 07:50:49

+0

我做了,谢谢:) – adieuuu 2012-01-28 07:55:53