2015-01-27 2 views
-1

В Великобритании, на следующий день в настоящее время 27 января 2015 годаPHP функция StrToTime дает неверное значение при использовании «Первая суббота»

Я хочу найти 1-й субботу в этом месяце и использовать следующий код, но вместо того, давая мне ожидаемый 3 января 2015 года, он показывает 31 января 2015 года? Что я сделал неправильно или есть ошибка в strtotime? Мой PHP версии 5.4.16

$time = strtotime('First Saturday'); 
$month1 = date("Y-m-d", $time); 
echo $month1; 

Вышеуказанные выходы 2015-01-31 и не ожидается 2015-01-03

+0

Это потому, что это 31-я суббота? – putvande

+1

Errr ... это зависит от того, откуда вы начинаете рассчитывать. Я предполагаю, что PHP начнет отсчет с этого момента, так как вы не предоставили ему никаких ссылок. – axiac

ответ

1

пытаются пройти месяц и год (или любой другой даты) также для ожидаемый

$time = strtotime('January 2015 First Saturday'); 
$month1 = date("Y-m-d", $time); 
echo $month1; //2015-01-03 

причина «первая суббота» рассчитывается с указанной даты. Если заданная дата уже является субботой, следующая рассчитывается. поэтому вы не даете никаких дат, а затем рассчитываете с следующего следующего субботы, поэтому постарайтесь провести дату

+0

Doh, вы совершенно правы. «Первая суббота» означает первую субботу после определенной даты. Я воспринял это как первую субботу месяца. Большое спасибо за помощь. –

-1
$time = strtotime('First Saturday of this month'); 
$month1 = date("Y-m-d", $time); 
echo $month1; //2015-01-03 
+0

Без лишних объяснений это приводит к плохим ответам. – Rimble

Смежные вопросы