2015-09-23 10 views
7

PHPでstrtotime()を使いこなした後、スペースやドットを渡すと有効なタイムスタンプが戻ってくることがわかりました。なぜstrtotime( '')とstrtotime( '。')はタイムスタンプを返しますか?

var_dump(strtotime(" ")); 
var_dump(strtotime(".")); 
var_dump(strtotime(". .. .. .. .... .. . .. .")); 

は生成します。

int 1443009652 
int 1443009652 
int 1443009652 

はなぜPHPはこのように、有効なを見ていますか?

+0

あなたは文字列を渡しています...あなたは何を返すと思いますか? –

+0

おそらく、「次の木曜日」、「3日」、「今」、「先月の最初の火曜日」、「2015年9月23日」などのように多くの潜在的な文字列を解析しようとするため、文字列の意味を理解できない場合は時間を、出力にはエラーを書いてください –

+0

ちょっと、コンマでも動作します! – Amarnasan

答えて

2

最も簡単な答えは、それらのいくつかはあるあるfalse Y

var_dump(DateTime(false)); // date shown is current time 

私の賭け(許容入力の多種多様をきれいにしようとしている)パーサがされていない期間アウト(ストリップということです区切り文字として使用されます)、空の文字列だけが残ります。それは理にかなっている唯一の説明です。

echo strtotime('1.1.2000'); // outputs 946681200 
+1

これはおそらくそうです。 'strtotime( '')'と 'strtotime( '')'は同じ出力を出すと期待していますが、そうではありません。 私はバグを報告し、彼らがこの動作を明確にすることができるかどうかを確認します。 – JurrieG

+0

バージョン 'echo strtotime(false);'はタイムスタンプを返しますか?私はここでテストし、虚偽を得た。 php5.6.8 – rray

+0

@rray bah、私はそれを 'DateTime'に対して実行しました。私の悪い。 https://3v4l.org/6DGdK – Machavity

関連する問題