Получение N-го числа месяца с использованием DateTime () - PullRequest
0 голосов
/ 01 октября 2018

Мне нужно получить дату 10 числа текущего месяца.Этот способ не работает:

<?php 
$date_start = new DateTime();
$date_start->modify('tenth day of this month');
echo $date_start->format('Y-m-d H:i:s'), "\n";
?>

Результаты:

Предупреждение: DateTime :: modify (): не удалось проанализировать строку времени (десятый день этого месяца) в позиции 10(o): Часовой пояс не найден в базе данных в [...] [...] в строке 3

Конечно, я могу использовать date('Y-m-10'), но мне нужно сделатьэто с объектом DateTime () .

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Я нашел правильный путь:

<?php
$date_start = new DateTime();
$date_start->modify('first day of this month');
$date_start->modify('+9 days');
echo $date_start->format('Y-m-d');
?>

Результат на 2018-09-30:

2018-09-10
0 голосов
/ 01 октября 2018

я не думаю, что есть tenth day of this month есть first day of this month:

Если вы хотите сделать это с DateTime таким образом, попробуйте дважды изменить что-то вроде этого:

  $date_start = new DateTime();
  $date_start->modify('first day of this month');
  $date_start->modify('+9 day');
  echo $date_start->format('Y-m-d H:i:s'), "\n";
0 голосов
/ 01 октября 2018

Вы можете использовать setDate:

$date_start->setDate($date_start->format('Y'), $date_start->format('m'), 10);
echo $date_start->format('Y-m-d H:i:s'), "\n";

Выход:

2018-10-10 06:49:01
...