Bir tarih bir gün ekleme

4 Cevap php

Bir tarih döner bir gün eklemek için benim kod:

date before day adding: 2009-09-30 20:24:00 date after adding one day. SHOULD be rolled over to the next month: 1970-01-01 17:33:29

<?php

    //add day to date test for month roll over

    $stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00"));

    echo 'date before day adding: '.$stop_date;	

    $stop_date = date('Y-m-d H:i:s', strtotime('+1 day', $stop_date));

    echo ' date after adding one day. SHOULD be rolled over to the next month: '.$stop_date;
?>

Ive burada yanlış ne yapıyorum önce oldukça benzer kod kullanılır?

4 Cevap

Burada verimli bir cevap bulunamadı olamazdı gibi ben neredeyse 3,5 yıl sonra cevap ilanıyla.

Bu deneyin:

$date = new DateTime('2000-12-31');

$date->modify('+1 day');
echo $date->format('Y-m-d') . "\n";

Ben her zaman sadece 86400 (günde saniye) ekleyin:

$stop_date = date('Y-m-d H:i:s', strtotime("2009-09-30 20:24:00") + 86400);

echo 'date after adding 1 day: '.$stop_date;

Bu muhtemelen bunu yapabilirdi slickest yol değil, ama işe yarıyor!

Doug Hays 'cevabı ile kabul ederken, ben strtotime() 2. argüman değil, bir dize (hatta tek olarak bir INT bekler çünkü kod çalışmıyor neden olduğunu söylemek için buraya düşmek edeceğiz Bir tarih) temsil

Eğer raporlama maksimum hata açarsanız E_NOTICE seviyesi bir "olmayan iyi oluşmuş sayısal değeri" hata olarak görürsünüz.

Bu deneyin

echo date('Y-m-d H:i:s',date(strtotime("+1 day", strtotime("2009-09-30 20:24:00"))));