<?php
namespace Zend\Stdlib {
use DateTimeZone;
class DateTime extends \DateTime
{
public function __construct($time = 'now', $timezone = null)
{
// workaround not required for PHP 5.3.7 or newer
if(version_compare(PHP_VERSION, '5.3.7','>=')){
return parent::__construct($time, $timezone);
}
// Check if using relative constructs
if(!stristr($time, 'last') && !stristr($time, 'first')){
return parent::__construct($time, $timezone);
}
// Use current time with constructor to prevent setting 'first_last_day_of' flag
parent::__construct('now', $timezone);
// Set the timestamp by relying on strtotime and avoiding setting the
// internal 'first_last_day_of' flag of DateTime object.
$this->setTimestamp(
strtotime($time, $this->getTimestamp())
);
return $this;
}
public function modify($modify)
{
// Workaround not required for PHP 5.3.7 or newer
if(version_compare(PHP_VERSION, '5.3.7','>=')){
return parent::modify($modify);
}
// Check if using relative constructs
if(!stristr($modify, 'last') && !stristr($modify, 'first')){
return parent::modify($modify);
}
// Set the timestamp by relying on strtotime and avoiding setting the
// internal 'first_last_day_of' flag of DateTime object.
$parsedTimestamp = strtotime($modify, $this->getTimestamp());
if ($parsedTimestamp === false) {
return false; // something went wrong parsing the date
}
$this->setTimestamp($parsedTimestamp);
return $this;
}
}
$interval = new \DateInterval('P1D');
$dt = new \DateTime('2012-05-05');
var_dump($dt);
$dt->add($interval);
var_dump($dt);
}
Deprecated: Return type of Zend\Stdlib\DateTime::modify($modify) should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/oEian on line 31
object(DateTime)#2 (3) {
["date"]=>
string(26) "2012-05-05 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "Europe/Amsterdam"
}
object(DateTime)#2 (3) {
["date"]=>
string(26) "2012-05-06 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(16) "Europe/Amsterdam"
}