2

24/09/2010date in formatdd/mm/yyyy2010-09-24in 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'

理由はありますか?

4

3 に答える 3

2

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);
于 2010-09-28T03:39:36.620 に答える
2

php によると、有効な php 形式はここに記載されています。したがって、基本的にあなたが与えたものは無効です。

または、 mktimedate_parse_from_formatまたはdate_create_from_formatを使用できます

于 2010-09-28T03:40:38.980 に答える
0

あなたが言うように、date("Ymd",strtotime("09/24/2010")) は機能します。これは、日付形式が "09/24/2010" であるためです。ただし、"24/09/2010" は正しくありません。正しい日付形式。ここで便利なものを見つけることができます

于 2010-09-28T05:35:23.483 に答える