назад к статьям

Как использовать серверную дату на сайте?

Содержание

Вступление

Что же такое серверная дата? Попросту говоря, это дата сервера, где расположен ваш сайт. Чем это полезно? Конечно же тем, что нельзя просто взять, поменять дату на своем компьютере и использовать "лазейки" в сайтах. Допустим, какое-то событие стоит на 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 миллисекунд, чтобы данные появились после загрузки с сервера.

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

предыдущий пост следующий пост