2012-05-26 4 views
3

Если у вас есть день в году. Как вы можете конвертировать это в день месяца и месяца? Например: День «144» должен быть преобразован в 26 мая. Думаю, я также должен добавить фактический год для учета високосных лет. Но я ничего не нашел.PHP: конвертировать День года в день месяца и месяца

Например, функция mktime() выводит на экран месяц, год и день месяца.

У кого-нибудь есть предложения?

+0

Это зависит от того, является ли это високосным годом или нет. – WojtekT

+0

кстати. сегодня 147-й день 2012 года;) – nullpointr

ответ

3
strtotime("January 1st +".($days-1)." days"); 

Это вернет отметку времени, соответствующую указанному дню года.

+0

Я хотел бы дать дополнительные баллы за то, что так сразу! –

9

Самый надежный и удобный способ - использовать объект DateTime. Вы можете использовать DateTime::createFromFormat() статический метод, чтобы создать его на основе день в текущем году:

$date = DateTime::createFromFormat('z', '144'); 

И потому, что вы знаете, есть объект DateTime в переменной $date можно выполнить буквально любую задачу, которую вы хотите. Для вывода содержал дату, просто звоните:

echo $date->format('j. n. Y'); 

Он распечатает 24. 5. 2012, потому что это високосный год, и потому, что он индексирует дней, начиная с нуля (так же, как индексы массива).

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