2012-01-28 10 views
0

日付文字列を検証する関数を作成したいと考えています。PHP Datetime :: format

私のモジュールは日付を表示し、バックエンドには、フロントエンドに日付を表​​示するために使用できるいくつかの形式の例があります。さらに、高度な日付形式の入力で、 'H:私は:s 'または何でも彼が望む。

詳細フォーマットオプションが指定されていない場合、デフォルトフォーマットが使用されます。

入力でenterred形式の妥当性を確認するために、私は私が行うことができます考えた:今=新しい日時(「今」)

$を。

場合(!$ NOW->形式($形式))....偽形式

しかし$形式は= xまたはefkjfkefefje、それは単なる文字列自体を返す場合formatメソッドはfalseを返しません。 。

私はここで指定caracters異なりcaracterがある場合、それはfalseを返すしたいと思います:http://www.php.net/manual/en/function.date.php

しかし、非常に多くの例があります。たとえば、 'H:i:s'は有効ですが、 'His'は無効です。

「:」または「/」を解析しないようにするには、「H/i/s」が有効であると考えることができます。

caracterがリストhttp://www.php.net/manual/en/function.date.phpと異なる場合、またはcaractersの間に空白がない場合はfalseを返します。 'His'は有効ではありませんが、3つのcaractersは単独です。

私はあまり正規表現に精通していません。

+0

私の日付が「His」であることが好きな場合はどうなりますか?コロンやスラッシュのような区切り文字は猫のためのものです。私はまた、日付は "彼のスチールボールを持っている"と言う。しかし、あなたはこの間違ったフォーマットを考えます。私はこれが上級ユーザー向けであれば、彼らが好きなように書式設定をするようにしておきます。 – dmedvinsky

+0

はい、そうです。ありがとう。実際には私の解決策を保つことができますし、文字列自体を表示する場合は、形式を変更します。上級者向けです – adieuuu

答えて

3

日付書式文字列を検証するには、DateTime :: createFromFormatを使用できるようにする必要があります。

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

提供日付文字列の書式と一致しない場合、それが正常に作成、または虚偽だ場合はDateTimeオブジェクトのいずれかを返します。

+0

ありがとう:)これが最善の方法です。 – adieuuu

+0

誰かがしばらくしてより良い回答を投稿しても、それをアップアップして受け入れられるように気をつけてください。 (うん・パンダリング!:) – Corbin

+0

私は、ありがとう:) – adieuuu