Есть ли лучший способ вернуть дату в первый день определенного месяца/года, а не следующее?Получение первого дня месяца определенного месяца/года
$month = date('m');
$year = date('Y');
$from = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
Есть ли лучший способ вернуть дату в первый день определенного месяца/года, а не следующее?Получение первого дня месяца определенного месяца/года
$month = date('m');
$year = date('Y');
$from = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
Это похоже на правильный путь, чтобы сделать это для меня. Возможно, вы захотите сделать его функцией.
Это не совсем вычислительно элегантный, но мне это нравится, потому что это так читаем:
strtotime("first day of this month");
Стоит отметить, что такие изменения, как «первый день следующего месяца» и «первый день этого месяца +2 месяца», также работают. – drewish
Также стоит отметить, что в отличие от образца в вопросе, который имеет полночь как время, эта версия использует текущие часы, минуты и секунды. – drewish
Мне нравится использовать '$ date = new DateTime ('первый день этого месяца'); $ date-> setTime (0, 0, 0); ' – LeonardChallis
Почему так сложно?
date("Y-m-01")
Это будет работать нормально;)
(Не волнуйтесь, я ударил себя трудно тратить час баловаться с strtotime
прежде чем понял, что я мог сделать это)
date("Y-m-01")
будет работать! в совершенстве; Я использовал ту же технику, чтобы найти запись с первого дня месяца до текущего дня. Посмотрите на следующие строки кода:
if(!isset($FromDate))
$FromDate=date('Y-m-01'); //date with current month's first day
if(!isset($ToDate))
$ToDate=date('Y-m-d'); /////current date
Я надеюсь, что это будет работать в соответствии с требованиями.
Что вы подразумеваете под улучшением? То, что у вас есть, кажется прекрасным. – j08691