Как получить количество дней и в в месяце (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 или хотя бы какой алгоритм здесь можно применить?
Стандартная функция 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));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости