У меня есть три части информации, извлеченные из моей базы данных, года, числа недели (1-52) и дня недели (mon, tue, мы б). И мне нужно преобразовать его в дату.Год, количество недель и дней недели на php
Как мне это сделать в php?
У меня есть три части информации, извлеченные из моей базы данных, года, числа недели (1-52) и дня недели (mon, tue, мы б). И мне нужно преобразовать его в дату.Год, количество недель и дней недели на php
Как мне это сделать в php?
Это преобразует стоимость $ day в желаемый формат дня. попробовать это
$yr="2011";
$week="01";
$day="Monday";
$day=date("D",strtotime($day));
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day));;
I попробовал это: php $ yr = "2014"; $ week = "01"; $ day = "mon"; $ day = date ("D", strtotime ($ day)); echo date ("Y-m-d", strtotime ($ yr. "W". $ Week. "D". $ Day)) ;; ?> и результаты аналогичны: x не так – user2688737
Я тоже проверил после вашей ссылки. Неправильно. Обновите, если найдете soln. – krishna
ОК, большое вам спасибо – user2688737
Попробуйте это:
$yr="2014";
$week="01";
$day = "Mon";
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day));
PHP скрипку: http://phpfiddle.org/main/code/nzg-ws6
Я пробовал: $ yr = "2014"; $ week = "01"; $ day = 'mon'; echo date ("Y-m-d", strtotime ($ yr. "W". $ Week. "D". $ Day)); и в результате: 2014-01-03 Это не так. Потому что, 2014-01-3 это пятница! – user2688737
ли немного покопаться, и это похоже на следующий день нужно будет находиться в цифровом формате для преобразования strtotime для правильной работы. Использование строки, такой как «понедельник», не будет работать.
$yr = "2014";
$week = "01";
$day = "1"; //Monday
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011"
Обратите внимание, что я не включил префикс «D» в течение дня, как это выглядит следовать ISO8601.
Перестановка ваши дни номерам можно сделать несколькими способами: Вы могли бы сделать массив с понедельника по воскресенье и использовать ключ массива, или, возможно, немного легче вы могли бы сделать что-то вроде этого:
$day date("N", strtotime("Monday")); // will echo 1
таким образом, полный код может выглядеть примерно так:
$yr = "2014";
$week = "01";
$day = date("N", strtotime("Monday")); //
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011"
Вот демо, чтобы проверить: http://3v4l.org/EllgQ
А что вы пробовали до сих пор? – Rikesh
Очень близко к дублированию: http://stackoverflow.com/questions/5763340/how-to-convert-week-number-and-year-into-unix-timestamp PHP 'strtotime()' сделает это за вас – jtheman