Функции date и mktime

279
23 февраля 2018, 19:14

Как получить количество дней и в в месяце (t) и день недели (w) на 9223372036854775807 (максимальное 64 integer) год? Пробую делать через mktime и date - ничего не выходит:

date('d.m.Y',mktime(0, 0, 0, 12, 1, 9223372036854775807) )

Возвращает "30.11.-0001". Я пробовал найти закономерность, чтобы уменьшить 9223372036854775807 год до реальных, чтобы был меньше 2038. Но закономерность нормальную удалось найти только у высокосных годов (там календарь повторяется каждые 28 лет). Цель такая, чтобы выдавать дату на любой год, максимальный год 9223372036854775807. Может есть решения на php или хотя бы какой алгоритм здесь можно применить?

Answer 1

Стандартная функция cal_days_in_month(); Date с флагом - w, t - это ваш случай.

if (!function_exists('cal_days_in_month'))
{
function cal_days_in_month($calendar, $month, $year)
{
    return date('t', mktime(0, 0, 0, $month, 1, $year));
}
}
if (!defined('CAL_GREGORIAN'))
define('CAL_GREGORIAN', 1);

$number = cal_days_in_month(CAL_GREGORIAN, 2, 2018); // 28
echo "Всего {$number} дней в Феврале 2018 года";

echo date("w", mktime(0,0,0,12,1,2004));
READ ALSO
Чтение текстового файла с USB флеш-карты на PHP

Чтение текстового файла с USB флеш-карты на PHP

Доброго всем дня! Возможно ли средствами PHP получить содержимое текстового файла (напримерtxt) с флеш-карты USB?

289
Объединение запросов, UNION

Объединение запросов, UNION

Добрый деньЕсть 2 sql запроса:

232
Как подключать файлы к проекту,после сборки с помощью webpack, если в названии прописывается hash?

Как подключать файлы к проекту,после сборки с помощью webpack, если в названии прописывается hash?

Задача при каждой сборки бандлов с помощью webpack, дописывать в названия бандлов со стилями и js хэшСобственно говоря, сделать это не сложно

234