Intereting Posts
Экспорт файла excel с использованием PHPExcel, работающего на моем локальном компьютере, но не работающего на реальном сервере Как объединить изображения внутри pdf программы? Создать и использовать глобальную переменную без ключевого слова «global»? Symfony2: расширение не загружается Buzz WideImage – Прозрачные области конвертированного PNG должны быть белыми Проблема при записи файлов со специальными символами в PHP + Apache – проблема с кодировкой Сводный синтаксис PHP Стандарты Strct: только переменные должны передаваться по ссылке Можно ли вводить php-оболочку в изображение? Как это будет работать? Иерархия категорий (PHP / MySQL) в Yii Google Cookie – HTTP и HTTPS Android отправляет данные на php и получает исключение nullpointerexception PHP: возвращает строку между двумя символами Создайте ObjectID объекта MongoDB с даты в прошлом с помощью драйвера PHP Google Datastore возвращает «503 Backend Error»

PHP Datetime «следующая неделя среда» дает мне понедельника

Я пытаюсь получить следующую среду в среду, используя new \DateTime('next week wednesday') . Тем не менее, он возвращает 2016-12-19 00:00:00.000000 который является понедельником. Почему это так? Как получить правильный результат?

Я попытался воспроизвести его в PHP-песочнице онлайн, но там он возвращает правильный результат. Http://sandbox.onlinephpfunctions.com/code/7ab99fcfeffedc1ad01d7de9ed236ac273fe1bb3 Может ли это быть чем-то в зависимости от моей среды?

Я запускаю PHP 7 на OSX

PHP 7.0.11 (cli) (построено: 2 октября 2016 00:32:59) (NTS) Copyright (c) 1997-2016 PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies с Xdebug v2 .4.0, Авторское право (c) 2002-2016 гг., Derick Rethans

введите описание изображения здесь

Кажется, это ошибка (возможно, это происходит только по воскресеньям):

 <?php var_dump(new \DateTime('Wednesday next week')); 

PHP версии 5.6.23 – 5.6.29 и 7.0.8 – 7.1.0 вывод 19 декабря (понедельник), в то время как версии PHP с 5.0 до 5.6.22 и от 7.0.0 до 7.0.7 возвращаются 28 декабря (среда).

Я не вижу упоминания о связанных изменениях в записях изменений для PHP 5.6.23 или 7.0.8.

Я получаю те же результаты здесь, действительно, кажется, на следующей неделе:

 $date = new \DateTime('next week wednesday'); print_r($date); DateTime Object ( [date] => 2016-12-19 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Berlin ) 

Кажется, что переписывание работает, в зависимости от того, что вы хотите:

 $date = new \DateTime('wednesday'); print_r($date); DateTime Object ( [date] => 2016-12-21 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Berlin ) 

или

 $date = new \DateTime('wednesday'); $date->add(new \DateInterval('P1W')); print_r($date); DateTime Object ( [date] => 2016-12-28 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Berlin )