понедельник, 26 сентября 2011 г.

Как определить день недели по дате. php

Понадобилось определить день недели по дате. Яндекс по запросу понаходил кучу каких то полувелосипедных функций. Но если посмотреть чуть повнимательнее, то все оказывается просто. У php есть мегафункция JDDayOfWeek().

Пример использования:

$date='02.14.2012';
$day_of_week=JDDayOfWeek($date,1);

Поправка  JDDayOfWeek дает день недели по юлианскому календарю

для определения номера недели по григорианскому календарю надо использовать

JDDayOfWeek(cal_to_jd(CAL_GREGORIAN, '02', '14', '2012'),1);

Пример:

$day_of_week=JDDayOfWeek(cal_to_jd(CAL_GREGORIAN, '02', '14', '2012'),1);
echo $day_of_week;


Или функцию  date('w') . На мой взгляд самый простой способ

Пример:

echo date('w',strtotime('14.02.2012'));

2 комментария:

  1. а перед копипастом потестить не судьба?(
    $date=mktime(0,0,0,02,09,2012);
    $day_of_week=JDDayOfWeek($date,0);
    Это 9 февраля 2012 года.
    день недели: 4 - тоесть четверг (0- воскресенье, 1 понидельнег)
    а код автора возвращает "A non well formed numeric value encountered in [бла бла бла]"
    3
    он вернул среду!)

    ОтветитьУдалить