Сравните дату SSI с датой JavaScript - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь написать форму, которая будет отключена в определенное время, и я хочу, чтобы это происходило с использованием JavaScript. Однако, поскольку люди могут легко изменить дату на своем компьютере, я надеялся использовать дату, предоставленную Apache, в качестве даты сравнения. Я попробовал несколько простых вещей, но дата повторения SSI не будет сравниваться с датой javascript. Мой код ниже. Есть идеи?

var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->'
var currenttime = currenttime+' GMT-0400 (EDT)';

var disableDate = new Date();
disableDate.setFullYear(2011,9,18);
disableDate.setHours(17,0,0,0);

if(disableDate < currenttime)
    $('#date_field').attr("disabled", true);

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Вы сравниваете строку с датой. Сначала преобразуйте строку currenttime в объект Date:

var currenttime = '<!--#config timefmt="%a %b %d %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" --> GMT-0400 (EDT)';
currenttime = new Date(currenttime);

Тем не менее, вместо этого попробуйте использовать условный SSI для полного отключения формы на стороне сервера, вместо того чтобы заставить JavaScript делать это за вас.

0 голосов
/ 19 октября 2011

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

Вы должны сосредоточиться на том, «как я могу отрицать обработку этой формы в определенное время?» - и, как вы видите, вопрос больше не зависит от пользовательских часов. Перейти на серверную сторону!

Начиная с JavaScript, используйте его только для удобства пользователя. Все правила "безопасности" предназначены для серверной части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...