checkdate

Проверяет правильность даты/времени.
Синтаксис:

int checkdate(int month, int day, int year);

Функция checkdate() проверяет правильность даты, заданной в ее аргументах.
Возвращает true если дата, указанная как "month, day, year" (месяц, число, год), правильна, иначе false. Дата считается правильной, если:

- год между 1 и 32767 включительно
- месяц между 1 и 12 включительно
- день находится в диапазоне разрешенных дней данного месяца. Високосные годы учитываются.

$month=1;
$day=10;
$year=2002;
if(checkdate($month,$day,$year)) echo "Такой день есть!";
else echo "Такого дня нет!";

Выведет:

Такой день есть!

$month=13;
$day=10;
$year=2002;
if(checkdate($month,$day,$year)) echo "Такой день есть!";
else echo "Такого дня нет!";

выведет:

Такого дня нет!

gmmktime

Аналог функции time() для времени GMT.

Синтаксис:

int gmmktime(int hour, int minute, int second, int month, int day, int year [, int is_dst]);

Идентична mktime() за исключением того, что передаваемые параметры передают время по Гринвичу (GMT).

time

Получение времени в секунадх.

Синтаксис:

int time(); 

Возвращает текущее время, измеренное в числе секунд с эпохи Unix (1 Января 1970 00:00:00 GMT).

Этот формат данных принят в Unix как стандартный (называется "UNIX timestamp"): в частности, время последнего изменения файлов указывается именно в таком формате. Вообще говоря, почти все функции по работе со временеи имеют дело именно с таким его представлением (которое называется timestamp). То есть представление "количество секунд с 1 января 1970 года" весьма универсально и, что главное, - удобно.

echo time();

microtime

Возвращает текущую временную метку UNIX в микросекундах.

Синтаксис:

string microtime();

Возвращает строку "msec sec" где sec текущее время, измеренное в числе секунд с эпохи Unix (0:00:00 1 Января, 1970 GMT), а msec - это часть в микросекундах. Эти функции доступны только в операционных системах, поддерживающих системный вызов gettimeofday().

Но дело в том, что милисекунды в различных OC выглядят по разному. Например в Unix это действительно число микросекунд, а в Windows - непонятное значение.

echo microtime(); // в Windows выведет что-то типа 0.53033200 1012468870

strtotime

Лексическое преобразование строки времени в Unix timestamp.

Синтаксис:

int strtotime(string time [, int now]);

В аргументе time функция получает дату в англоязычном формате, а затем преобразует ее в целочисленный формат Unix timestamp.

echo strtotime("now")."n";
echo strtotime("10 September 2002")."n";
echo strtotime("+2 day")."n";
echo strtotime("+3 week")."n";
echo strtotime("+1 week 2 days 4 hours 34 seconds")."n";

date

Формат локального времени/даты.

Синтаксис:

g date(string format [, int timestamp]);

Эта функция возвращает строку, содержащую дату и время, отформатированную согласно строке format и используя временную метку timestamp или текущее локальное время, если не задана временная метка.

В фоматной строке должны использоваться следующие символы:

a - "до" и "после" полудня: "am" или "pm" 
A - "До" и "После" полудня: "AM" или "PM"
d - день месяца, 2 цифры (на первом месте ноль) (от 01 до 31)
D - день недели, текстовый, 3 буквы; т.е. "Fri"
j - день месяца, 1-2 цифры без начальных нулей (от 1 до 31)
F - месяц, текстовый, длинный; т.е. "January"
h - час, 12-часовой формат (от 01 до 12)
H - час, 24-часовой формат (от 00 до 23)
g - час, 12-часовой формат без нулей (от 1 до 12)
G - час, 24-часовой формат без нулей (от 0 до 23)
i - минуты (от 00 до 59)
I(большая i) - 1, если действует переход на летнее время, иначе 0
L - 0, если год не високосный, или 1 в противном случае
B - Swatch Internet time
T - временная зона компьютера, например: MDT (доступна не всегда)
l (строчная "L") - день недели, текстовый, длинный; т.е. "Friday"
m - месяц, две цифры с нулями (от 01 до 12)
n - месяц, одна-две цифры без нулей (от 1 до 12)
M - трехбуквенное английское сокращение месяца; т.е. "Jan"
t - число дней в указанном месяце (от 28 до 31)
s - секунды (от 0 до 59)
S - англоязычный порядковый суффикс числа из двух букв, текстовый, т.е. "th", "nd"
U - целое число секунд, прошедших с момента начала эпохи UNIX (доступно не всегда)
Y - год, цифровой, 4 цифры (1999)
y - год, цифровой, 2 цифры (99)
w - порядковое число дня в неделе,(от 0-воскресенье до 6-суббота)
z - порядковое число дня в году (от 0 до 365)
Z - смешение временной зоны в секундах (от -43200 до 43200)

Все остальные символы в строковом аргументе format возвращаются в результирующей строке "как есть".

Формат "Z" всегда возвращает 0 при использовании с функцией gmdate().

echo date("Сегодня d.m.Y");
//Сегодня 31.01.2002

echo date( "l dS of F Y h:i:s A" );
// Thursday 31st of January 2002 12:51:19 PM

echo "July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000));
// July 1, 2000 is on a Saturday

Функции date() и mktime() возможно использовать вместе для того, чтобы найти даты в будущем или прошлом.

$tomorrow  = mktime(0,0,0,date("m")  ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"), date("Y"));
$nextyear = mktime(0,0,0,date("m"), date("d"), date("Y")+1);

localtime

Получает информацию о дате/времени.

Синтаксис:

array localtime([int timestamp [, bool is_associative]]);

Первый необязательный аргумент этой функции задает метку времени Unix. В случае, если он не указан, то используется текущее время.

Если второй необязательный параметр равен нулю (по умолчанию), то возвращаемый массив будет численно индексирован; в противном случае возвращается ассоциативный массив, где элементы имеют следующие значения:

([1])"tm_sec" - секунды
([2])"tm_min" - минуты
([3])"tm_hours" - часы
([4])"tm_mday" - день месяца
([5])"tm_mon" - месяц в году
([6])"tm_year" - год, цифровой
([7])"tm_wday" - день недели
([8])"tm_yday" - день в году
([9])"tm_isdst" - активен ли переход на летнее время

gettimeofday

Получение даты системным вызовом.

Синтаксис:

array gettimeofday();

Эта функция возвращает ассоциативный массив, который содержит дату, возвращенную системным вызовом. Функция является интерфейсом системной функции gettimeofday(2).

Возвращаемый ассоциативный массив содержит следующие элементы:

"sec" - секунды
"usec" - микросекунды
"minuteswest" - смещение к западу от Гринвича, в минутах
"dsttime" - тип dst коррекции (переход на летнее время)

strftime

Форматирует время согласно локальным установкам.

Синтаксис:

string strftime(string format [, int timestamp]);

Возвращает строку, отформатированную согласно данной форматной строке format и используя данную временную метку timestamp или текущее локальное время, если метка не задана.

Функцией setlocale() можно выставить язык, на котором будут выводиться названия месяцев и дней.

В форматной строке следует использовать следующие спецификаторы преобразований:

%a - сокращенное название дня недели по умолчанию (Wed);
%A - полное название дня недели по умолчанию (Wednesday);
%b - сокращенное название месяца по умолчанию (Apr);
%B - полное название месяца по умолчанию (April);
%c - предпочтительное представление даты и времени (06/19/02 15:45:11);
%C - номер века (год, деленный на 100 и без дробной части, от 00 до 99);
%d - день месяца как десятичное число (в диапазоне от 0 до 31);
%D - эквивалент %m/%d/%y;
%e - число месяца (вместо незначащего нуля ставится пробел) (от 1 до 31);
%h - аналог %b;
%H - час как десятичное число в 24-часовом формате (в диапазоне от 00 до 23);
%I - час как десятичное число в 12-часовом формате (в диапазоне от 01 до 12);
%j - номер дня в году как десятичное число (в диапазоне от 001 до 366);
%m - номер месяца как десятичное число (в диапазоне от 1 до 12);
%M - минуты как десятичное число;
%n - символ перехода на новую строку;
%p - "am" или "pm" (до и после полудня) согласно текущему времени;
%r - время в 12-часовом формате (a.m. или p.m.);
%R - время в 24-часовом формате;
%S - секунды как десятичное число;
%t - символ табуляции;
%T - текущее время, эквивалентно %H:%M:$S;
%u - число дня в неделе (от 1 до 7) (понедельник - 1);
%U - номер недели в году как десятичное число, начиная с первого Воскресенья в качестве первого дня первой недели;
%V - номер недели в году по стандарту ISO 8601:1988 (от 1 до 53), где первая неделя - та, в которой насчитывается больше 3-х дней в текущем году;
%W - номер недели в году как десятичное число, начиная с первого понедельника в качестве первого дня первой недели;
%w - номер дня в неделе (от 0 до 6) (воскресенье - 0);
%x - представление даты в системном формате без указания времени (06/13/02);
%X - представление времени в системном формате без указания даты (15:34:54);
%y - год как десятичное число без столетия (в диапазоне от 00 до 99);
%Y - год как десятичное число, включая столетие;
%Z - временная зона или название или сокращение;
%% - символ "%".

setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de");
print(strftime("A.n"));

Форматирует локальное время согласно установкам locale.

getdate

Получает информацию о дате/времени.

Синтаксис:

array getdate(int timestamp);

Возвращает ассоциативный массив, содержащий информацию о дате со следующими элементами:

"seconds" - секунды
"minutes" - минуты
"hours" - часы
"mday" - день месяца
"wday" - день недели, цифровой
"mon" - месяц, цифровой
"year" - год, цифровой
"yday" - день года, цифровой; т.е. "299"
"weekday" - день недели, текстовый, полный; т.е. "Friday"
"month" - месяц, текстовый, полный; т.е. "January"
0 - "UNIX timestamp", полученный аргумент.

print_r(getdate(time()));

Приведенный пример выведет следующее:

Array(
[seconds] => 23
[minutes] => 44
[hours] => 22
[mday] => 15
[wday] => 0
[mon] => 8
[year] => 2004
[yday] => 227
[weekday] => Sunday
[month] => August
[0] => 1092595463
)

gmdate

Получение даты в форматированной строке для времени GMT.

Синтаксис:

string gmdate(string format, int timestamp);

Аналогична функции date() за исключением того, что время возвращается в Гринвичском формате Greenwich Mean Time (GMT).

Например, при запуске в Финляндии (GMT +0200), первая строка ниже напечатает "Jan 01 1998 00:00:00", в то время как вторая строка напечатает "Dec 31 1997 22:00:00".

echo date( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );

gmstrftime

Форматирование локальных времени/даты.

Синтаксис:

string gmstrftime(string format, int timestamp);

Действие этой функции аналогично действию функции strftime() с тем отличием, что возвращается время по Гринвичу (GMT).

Например, при запуске в зоне (GMT -0500) первая строка бедт следующей:

"Dec 31 1998 20:00:00", а вторая: " Jan 01 1999 01:00:00". 
setlocale("LC_TIME", "en_US");
echo strftime("%b %d %Y %H:%M:%S", mktime(20,0,0,12,31,98))."n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20,0,0,12,31,98))."n";

mktime

Получает временную метку UNIX для даты.

Синтаксис:

int mktime([int hour] [,int minute] [,int second] [,int month] [,int day] [,int year] [, int is_dst]);

Возвращает временную метку Unix согласно данным аргументам. Эта временная метка является целым числом, равным количеству секунд между эпохой Unix (1 Января 1970) и указанным временем.

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

Аргумент is_dst, указывает, осуществлен ли переход на летнее время (1) или нет (0); если не известно, то аргумент - (-1)

Функция возвращает timestamp, соответствующий указанной дате.

Правильность даты, переданной в параметрах, не проверяется. В случае некорректной даты ничего особенного не происходит - функция "делает вид", что ее не касается, и формирует соответствующий timestamp.

echo date( "M-d-Y", mktime(0,0,0,12,32,1997) ); // неправильная дата
echo date( "M-d-Y", mktime(0,0,0,13,1,1997) ); // неправильная дата
echo date( "M-d-Y", mktime(0,0,0,1,1,1998) ); // правильная дата

Выводит три одинаковых числа

JDToGregorian

Преобразование дневного Юлианcкого счета в Грегорианскую дату.

Синтаксис:

string jdtogregorian(int julianday);

Преобразование дневного Юлианcкого счета в Грегорианскую в формате "месяц/день/год"

JDDayOfWeek

Возвращает день недели.

Синтаксис:

mixed jddayofweek(int julianday, int mode);

Возвращает день недели. Может возвратить строку(string) или int в зависимости от способа(mode).

Календарные недельные пути

Способ-Значение

0 - возвращает дневной номер как int (0=воскресенье, 1=понедельник, и т.п.)
1 - возврат string содержание дня недели (английское-грегорианское)
2 - возвращает string содержа abreviated дени недели (английский-грегорианский)

GregorianToJD

Преобразовывает Грегорианскую дату на Дневный Юлианский cчет.

Синтаксис:

int gregoriantojd(int month, int day, int year);

Правильный диапазон для Грегорианского календаря 4714 д.э. до 9999 н.э.

Хотя это программное обеспечение может оперировать даты в обратном порядке до 4714 д.э., такое использование может быть бесполезно и не значительно. Грегорианский календарь не был учрежден до Октября 15, 1582 (или Октябрь 5, 1582 в Юлианском календаре).

Некоторые страны еще очень долго не принимали его. Например, Великобритания преобразовалась в 1752, СССР в 1918 и Греции в 1923.

Европейские страны использовали Юлианский Календарь До Грегорианского.

Пример:

<?php$jd = GregorianToJD(10,11,1970);
echo("$jdn");
$gregorian = JDToGregorian($jd);
echo("$gregoriann");
?>

JDToJulian

Преобразовывает дату Юлианского календаря на дневный Юлианский счет.

Синтаксис:

string jdtojulian(int julianday);

Преобразование дневного Юлианского счета в строку, содержащую дату Юлианского Календаря в формате "месяц/день/год".

JulianToJD

Преобразовывает дату Юлианского Календаря на дневной Юлианский счет.

Синтаксис:

int juliantojd(int month, int day, int year);

Правильный диапазон для Юлианского календаря 4713 д.э. до 9999 н.э.

Хотя это программное обеспечение может оперировать даты в обратном порядке до 4713 д.э. такое использование может быть бесполезно и не значительно. Календарь был создан в 46 д.э., но подробные не стабилизировался до по крайней мере 8 н.э., и возможно позднее в 4-ом столетии. Также, начало года различно от одной культуры к другой - не все соглашаются, что Январь это первый месяц.

JDToJewish

Преобразовывает дневной Юлианский счет в Еврейский календарь.

Синтаксис:

string jdtojewish(int julianday);

JewishToJD

Преобразовывает дату в Еврейском Календаре на дневной Юлианский счет.

Синтаксис:

int jewishtojd(int month, int day, int year);

Еврейский календарь использовался в течение нескольких тысячелетий, но в течение начального периода не было никакой формулы, чтобы определить начало месяца. Новый месяц начинался когда замечено полнолуние.

JDToFrench

Преобразовывает дневной Юлианский счет в Французский Республиканский календарь.

Синтаксис:

string jdtofrench(int month, int day, int year);

Преобразовывает дневной Юлианский счет в Французский Республиканский календарь.

FrenchToJD

Преобразовывает дату и Французского Республиканского календаря в дневной Юлианский счет.

Синтаксис:

int frenchtojd(int month, int day, int year);

Эта программа преобразовывают даты в начиная с 1 до 14 (Грегорианские даты 22 Сентября 1792 до 22 1806 Сентября).

Это покрывает тот период когда календарь использовался.

JDMonthName

Возвращает название месяца.

Синтаксис:

string jdmonthname(int julianday, int mode);

Возвращает строку с названием месяца. julianday сообщает функции, в какой календарь нужно преобразовать древний Юлианский счет на, и какой тип месячных имен должен быть возвращен.

Календарные способы

0 - Грегорианский - apreviated
1 - Грегорианский
2 - Юлианский - apreviated
3 - Юлианский
4 - Еврейский
5 - Французский Республиканский