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分○○秒
私は間違っていますか?
問題ですか? – SanketR
https://3v4l.org/2g7r5私のために働きます。 'format( 'Asia/Kolkata')も意味をなさない。 –
コードは正しいです.24時間以内に日付が表示されるようにする必要があります。 6pm + 12hrs = 6am – STEEL