2012-01-28 138 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