2017-07-21 24 views
3

正しい応答を返すためにコードを取得する際に問題が発生しています。日付時刻の変換が間違って変更されています

$Birthd = '06-27-1996'; 

$NewISSdate = date("m-d-Y", strtotime(date("m-d-Y", strtotime($Birthd)) . " +21 years")); 

私はこれを実行すると、応答は次のとおりです。"12-31-1969"

私は、これは一種のデフォルトの日付であると信じて、私は自分のコードを修復するために何ができるのでしょうか? RANは、このような"07-03-1996".

+0

- /に変更してコードで試してください –

+0

0は1970/01/01ですので、12月31日はタイムゾーン補正のある0エポックです - こちらも見てください:https://stackoverflow.com/questions/18269556/php -date-add-1-year-to-current-date – mplungjan

+0

残念ながら「/」に変更しても問題は解決しています。 –

答えて

0

...試してみて/にあなたは、文字列の日付形式を変更し、以下のようにそれに年を追加する必要があります -

$Birthd = '06-27-1996'; 
$Birthd = str_replace("-","/",$Birthd); 

echo $NewISSdate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($Birthd)) . " + 21 years")); 

出力: - https://eval.in/835509 OR https://eval.in/835555

参考: - php different acceptable date formats

+0

@AlivetoDie私は愛していると思います。私の人生を救った。ありがとう! –

+0

@RyanReddingsあなたを助けてうれしい:) :) –

0

の変更など、さまざまな$Birthd文字列を使用している場合 -

$Birthd = '06/27/1996'; 

$NewISSdate = date("m/d/Y", strtotime(date("m/d/Y", strtotime($Birthd)) . " +21 years")); 
+0

まだ間違った日付を取得しています:( –

+0

この日付で試してください、strtotime( '+ 21 years、strtotime($ Birthd))); –

関連する問題