2016-09-07 3 views
-2

DateTimeの値を任意の時間に増やすと結果はOKですが、12時間増やしても増えません。 DateTime +同じDateTimeを示す12時間。どうして?


詳細は、次のコードを参照してください。



$creation_date = new DateTime('2016-09-07 06:00:00', new DateTimeZone('Asia/Kolkata')); 
$expiration_date = new DateTime('2016-09-07 06:00:00', new DateTimeZone('Asia/Kolkata')); 

私は1時間、3時間、8時間、24時間などによって$expiration_date変数を増加させた場合、結果は完璧です。例えば、

ケース1:

$expiration_date->add(new DateInterval('PT1H')); 
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata'); 

結果1:

作成日:2016年9月7日午前六時00分00秒
有効期限:2016年9月7日午前7時00分:00

ケース2:

$expiration_date->add(new DateInterval('PT3H')); 
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata'); 

結果2:
作成日:2016年9月7日午前6時00分00秒
有効期限:2016年9月7日9時00分00秒

ケース3:

$expiration_date->add(new DateInterval('PT8H')); 
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata'); 

結果3:
作成日:2016年9月7日6時00分00秒
有効期限:2016年9月7日2時00分00秒

ケース4:

$expiration_date->add(new DateInterval('PT24H')); 
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata'); 

結果4:
作成日:2016年9月7日午前六時00分00秒
有効期限:2016年9月8日午前六時00分00秒

しかし、私はで$expiration_date変数を増やします12時間、日付は増加していません!

彼らは同じ日時を示しています!

ケース5:

$expiration_date->add(new DateInterval('PT12H')); 
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata'); 

結果5:
作成日:2016年9月7日6時00分○○秒
有効期限:2016年9月7日6時00分○○秒



私は間違っていますか?

+2

問題ですか? – SanketR

+1

https://3v4l.org/2g7r5私のために働きます。 'format( 'Asia/Kolkata')も意味をなさない。 –

+0

コードは正しいです.24時間以内に日付が表示されるようにする必要があります。 6pm + 12hrs = 6am – STEEL

答えて

4

8時間

Creation Date: 2016-09-07 06:00:00 
Expiration Date: 2016-09-07 02:00:00 

あなたに

を与えるあなたは本当にその6 + 8が2であると思いますか?いいえ、それは14時には2 pmです 6 + 12と同じですが、6は18です。表示されるデータのフォーマットを24時間に変更してください)

+0

はいはい...その作業!ありがとうございました:) 1時間問題を見つけようとした後、私はラップトップで頭を叩きました! :D私は24時間形式に変更しました。今それは正常に動作しています。愚かな質問を申し訳ありません。 –

+0

Hehe、あなたは歓迎です:) – nospor

1

正しく入力されているようですが、時間フォーマットを24時間に設定する必要があります。

1

日付形式は、しかし、あなたの時間形式は、あなたがそれをチェックしてください可能性があり、24時間に設定する必要があり、私はそれが正しく移入だと思う、

$expiration_date= new DateTime('2016-09-07 06:00:00', new DateTimeZone('Asia/Kolkata')); 
$expiration_date->add(new DateInterval('PT8H')); 
echo date_format($expiration_date, 'Y-m-d H:i:s'); //2016-09-07 14:00:00 
関連する問題