2016-08-22 6 views
1

「2016年8月」のような日付が与えられたと言います。phpは、指定された日付に曜日の値がないかどうかを検出します。

私が見つけることができるすべてのPHP関数は、日付が与えられていなければ自動的に "1"を設定します。

私がしたいことは、私に1日を与えない日付の除草です。

私には提供されていません。英国または米国のフォーマットで混在することができます。

+0

DateTime::createFromFormat()を使用して試すことができますか? –

+1

他の日付形式はありますか?もしそうなら、どちらのもの?ユーザー入力を制御できますか?どのように値を取得しますか?質問を明確にして、適切にお手伝いできるようにしてください。 –

+0

'私が見つけることができるすべてのPHP関数は、何も指定されていなければ日付の日に自動的に" 1 "を設定します.'DateTime'を使用して手動で日を設定します。もし何も与えられなければ、あなたはいつ何を期待しますか?あなたは 'DateTime'にロードして日付を無視することができます。それ以降の出力形式は何でも制御できます – Ghost

答えて

3

あなたは、文字列の先頭の数を確認することができ

$notValid = DateTime::createFromFormat('F Y', '21 January 2016'); // false 
$valid = DateTime::createFromFormat('F Y', 'January 2016'); // DateTime object 
+0

'createFromFormat'の必要はありません、コンストラクタでも' 8月2016'を理解することができます – Ghost

+2

@Ghost確かに、質問の著者は、与えられた日付が与えられた日かどうかを確認したいと思っていました。 「2016年8月」と「2016年8月21日」の両方が真実に戻ります。 – Skysplit

+0

これは確かに素晴らしいアプローチのようです。私はあなたが日付の文字列を取り、存在する場合は日の数字を返し、そうでない場合はnullを返す関数にすることをお勧めします。 – trincot

関連する問題