У меня есть часовой пояс в формате 2010-05-04T05: 27: 00.000Z, который указывает время по Гринвичу, и я хочу добавить GMT 10+ к нему, используя php.
я могу сделать это, используя следующий код, но как я могу добавить 2010-05-04T05: 27: 00.000Z и GMT 10+, чтобы я мог получить действительную дату и время.
$offset=10*60*60; $dateFormat="dmY H:i::m:s"; echo $timeNdate=gmdate($dateFormat, time()+$offset);
Может быть, мне не хватает смысла, но вы действительно не ищете DateTime::setTimezone
?
$timezone = new DateTimeZone('Etc/GMT-10'); // GMT+10:00 $datetime = new DateTime('2010-05-04T05:27:00.000Z'); $datetime->setTimezone($timezone); echo $datetime->format('r'); // Tue, 04 May 2010 15:27:00 +1000
Используйте класс DateTime
http://php.net/manual/en/book.datetime.php exacly DateTime::Add()
http://www.php.net/manual/en/datetime.add.php
У вас есть пример здесь:
<?php $date = new DateTime('2000-01-01'); $date->add(new DateInterval('PT10H30S')); echo $date->format('Ymd H:i:s') . "\n"; $date = new DateTime('2000-01-01'); $date->add(new DateInterval('P7Y5M4DT4H3M2S')); echo $date->format('Ymd H:i:s') . "\n"; ?>
И другой:
<?php $date = new DateTime('2000-12-31'); $interval = new DateInterval('P1M'); $date->add($interval); echo $date->format('Ym-d') . "\n"; $date->add($interval); echo $date->format('Ym-d') . "\n"; ?>
-<?php $date = new DateTime('2000-12-31'); $interval = new DateInterval('P1M'); $date->add($interval); echo $date->format('Ym-d') . "\n"; $date->add($interval); echo $date->format('Ym-d') . "\n"; ?>
-<?php $date = new DateTime('2000-12-31'); $interval = new DateInterval('P1M'); $date->add($interval); echo $date->format('Ym-d') . "\n"; $date->add($interval); echo $date->format('Ym-d') . "\n"; ?>