2016-12-14 24 views
2

次のコードスニペット:PHP - のstrtotime()の戻り1970

が私を返します。

01.01.1970-01:00:00正しい方法は何

"01.01.2000-11:12:32"を時刻/日付オブジェクトに変換し、現在のタイムスタンプと比較しますか?

if (date("d.m.Y-H:i:s") > date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"))) { 
    echo "future"; 
} else { 
    echo "past"; 
} 
+0

を使用することができます。 –

+0

@PraveenKumar so ..ドットは許可されていますか? – 13loodH4t

+0

さて、これは..ですが、これはローカリゼーションによるものです。左の部分ではなく、右の部分にあります。 –

答えて

1

これはローカライゼーションによるものです。フォーマットは多くのことを重要として、異なるフォーマットを与えてみてください。

echo date("d.m.Y-H:i:s", strtotime("01/01/2000 11:12:32")); 
echo date("d.m.Y-H:i:s", strtotime("01-01-2000 11:12:32")); 
  1. あなたは、日付と月の区切りのための.を持つべきではありません。
  2. -を使用して日付と時刻を区切ることはできません。

あなたは他のソースからの入力を取得している場合は、str_replaceを使用してみてください:

echo date("d.m.Y-H:i:s", strtotime(str_replace(array(".", "-"), array("/", " "), "01.01.2000-11:12:32"))); 

出力:http://ideone.com/d19ATK

1

-.を交換してみてください。

echo date("d.m.Y-H:i:s", strtotime(str_replace('.', '-', "01.01.2000 11:12:32")));

また、日付と時刻の間に-を削除します。

1

あなたはスラッシュにドットを変更してみてくださいDateTime::createFromFormat

$date = DateTime::createFromFormat('d.m.Y-H:i:s', '01.01.2000-11:12:32'); 
$now = new DateTime(); 

if ($now > $date) { 
    echo "future"; 
} else { 
    echo "past"; 
}