DATETIME biçimi değere 1 gün ekleme

4 Cevap php

Bazı durumlarda benim DATETIME biçimlendirilmiş değişkenin değerine 1 gün eklemek istiyorum:

$start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));

Bunu yapmanın en iyi yolu nedir?

4 Cevap

PHP bunu yapmak istiyorsanız:

// replace time() with the time stamp you want to add one day to
$startDate = time();
date('Y-m-d H:i:s', strtotime('+1 day', $startDate));

Eğer MySQL tarih eklemek istiyorsanız:

-- replace CURRENT_DATE with the date you want to add one day to
SELECT DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);

PHP 5.2 tanıtıldı DateTime ile bunu daha sonra bir yolu var

$datetime = new DateTime('2013-01-29');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');

// Available in PHP 5.3

$datetime = new DateTime('2013-01-29');
$datetime->add(new DateInterval('P1D'));
echo $datetime->format('Y-m-d H:i:s');

// Available in PHP 5.4

echo (new DateTime('2013-01-29'))->add(new DateInterval('P1D'))->format('Y-m-d H:i:s');

See them in action

  1. strtotime bir zaman damgası dize dönüştürmek için kullanın
  2. Add a day to it (örneğin: by adding 86400 seconds (24 * 60 * 60))

örneğin:

$time = strtotime($myInput);
$newTime = $time + 86400;

Sadece 1 gün ekleyerek eğer, sonra tekrar strtotime kullanarak muhtemelen overkill olduğunu.

I Zend Framework den Zend_Date sınıfları kullanarak başlamanızı öneririz. Ben, onun biraz offtopic biliyorum, ama ben :-) bu şekilde seveceksin

$date = new Zend_Date();
$date->add('24:00:00', Zend_Date::TIMES);
print $date->get();