Получение даты от 30 дней назад и преобразование в формат iso8601 - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь получить дату от 30 дней назад и убедиться, что она в формате iso8601 для использования в Amazon MWS. Это то, что я пробовал, оно работает до определенного момента и выглядит так, как будто оно в правильном формате. но амазонка все еще говорит, что это не правильно!

$tester = date("c");
$tester = date('Y-m-d H:i:s', strtotime($tester . ' -30 days'));
$datetime = urlencode($tester);
echo $datetime;

1 Ответ

0 голосов
/ 02 мая 2018

Вам необходимо указать "c":

$tester = date('c', strtotime('-30 days'));
// if current  date is: 2018-05-02T13:53:24+05:00
// the result would be: 2018-04-02T13:53:24+05:00

Сказав это, я предлагаю перейти на DateTime класс:

$date = new DateTime();               // create date for current date
$date->sub(new DateInterval("P30D")); // subtract 30 days
echo $date->format("c");              // 2018-04-02T13:57:54+05:00
...