将SSI日期与javascript日期进行比较

时间:2011-10-19 18:57:19

标签: javascript apache

我正在尝试编写一个在某个时间禁用的表单,我希望使用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 个答案:

答案 0 :(得分:1)

您正在将字符串与日期进行比较。首先将currenttime字符串转换为Date对象:

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

也就是说,请尝试使用conditional SSI彻底禁用表单服务器端,而不是让JavaScript为您执行此操作。

答案 1 :(得分:0)

通常,您根本不需要它。如果你依赖JavaScript来禁用任何逻辑,那么期望你的页面被保存到磁盘,JavaScript会分开,并且表单会在现在或两年后的任何时间提交。

您应该关注的是“如何在某个时间拒绝处理此表单?” - 正如您所看到的,问题不再依赖于用户时钟了。去服务器端!

从JavaScript开始,仅为方便用户使用它。所有“安全”规则都适用于服务器端。