24/09/2010
date in formatdd/mm/yyyy
を2010-09-24
in formatに変換したいyyyy-mm-dd
。
これは機能します:
date("Y-m-d",strtotime("09/24/2010"));
しかし、これはしません:
date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01'
理由はありますか?
24/09/2010
date in formatdd/mm/yyyy
を2010-09-24
in formatに変換したいyyyy-mm-dd
。
これは機能します:
date("Y-m-d",strtotime("09/24/2010"));
しかし、これはしません:
date("Y-m-d",strtotime("24/09/2010")); // it returns '1970-01-01'
理由はありますか?
strtotime
文字列が与えられたときに何を意味するかを推測するために最善を尽くしますが、すべての日付形式を処理できるわけではありません。あなたの例では、有効ではない 24 番目の月を参照しようとしていると思われ、0 を返します。この日付は、UNIX エポック (取得した日付) として扱われます。
次のように、 mktime()およびexpand ()関数を使用してこれを回避できます。
$date = "24/09/2010";
$dateArr = explode("/",$date);
$timeStamp = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
$newFormat = date("Y-m-d",$timeStamp);
php によると、有効な php 形式はここに記載されています。したがって、基本的にあなたが与えたものは無効です。
または、 mktime、date_parse_from_formatまたはdate_create_from_formatを使用できます
あなたが言うように、date("Ymd",strtotime("09/24/2010")) は機能します。これは、日付形式が "09/24/2010" であるためです。ただし、"24/09/2010" は正しくありません。正しい日付形式。ここで便利なものを見つけることができます