Вступление

Что же такое серверная дата? Попросту говоря, это дата сервера, где расположен ваш сайт. Чем это полезно? Конечно же тем, что нельзя просто взять, поменять дату на своем компьютере и использовать "лазейки" в сайтах. Допустим, какое-то событие стоит на 20 октября, вы ставите на компьютере 20 октября и открывается событие. Чтобы дата на компьютере (получить ее можно через стандартный объект Date) не влияла на какие-то данные на сайте - используем серверную дату.

Как использовать дату? Тут есть некоторые хитрости.

PHP

Для начала нам нужно создать php файл, и назвать его, например, date.php

<?php

$result=array();
$result['status'] = 'ok';
$result['server_datetimeY'] = date("Y");
$result['server_datetimeM'] = date("m");
$result['server_datetimeD'] = date("j");
$result['server_datetimeT'] = date("t");
echo json_encode($result);

?>

Я не знаток PHP, однако тут все достаточно просто. Получаем серверную дату, конвертируем ее в JSON (спец. формат).

Мы видим, что создается несколько данных. date('Y'), date('m') и так далее. Чтобы не думать, что именно нам надо - просто переходите по ссылке на мануал по PHP, оттуда спокойно можете взять любые данные. ссылка.

Далее, нам нужно как-то обработать данные и оперировать ими. Тут все тоже довольно просто. Пишем код на jQuery.

JS

let year, month, day2, daysInMonth;
$.ajax({
type: "POST",
url: "date.php",
dataType: "json",
cache: false,
success: function(data){
if (data.status == 'ok') {
year = data.server_datetimeY;
month = data.server_datetimeM;
day = data.server_datetimeD;
daysInMonth = data.server_datetimeT;
localStorage['ServeTime'] = data.server_datetimeM;
}
}
});

Простой запрос к файлу date.php и получение данных в переменные. Обращаю внимание, что работать данный метод будет либо через OpenServer, либо уже прямо на хостинге (чтобы работал PHP).

В итоге в переменных year, month, day и daysInMonth у нас соответствующие данные. Да, в теории можно эти переменные переопределить извне (т.к. они глобальные), но никто не мешает Вам обезопасить себя)

И последнее что нужно сделать, чтобы работать с этими переменными непосредственно в коде - сделать setTimeout. Хотя бы на 100 миллисекунд, чтобы данные появились после загрузки с сервера.

На этом все, успехов вам!