2013-02-27 93 views
2

我需要通过隐藏表单输入字段以此格式发送当前日期yyyymmdd。将今天的日期提交为隐藏表单输入值

我的日期格式,因为我想用这个JavaScript

function getDate() 
{ 
var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1; //January is 0! 
var yyyy = today.getFullYear(); 
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = yyyy+mm+dd; 
} 

这是我的表单输入字段

<input type="hidden" name="startdate" onload="this.value = getDate();"/> 

我试过几种方法来分配上面到我的VAR日期startdate并将其发送到服务器,没有任何成功。

你能告诉我如何将日期传递给我隐藏的输入字段在页面加载时?

我想知道,如果这posses有关于安全和黑客的任何问题?

感谢您的帮助

+4

是否将服务器端的日期添加到问题中? – slamborne 2013-02-27 03:55:06

+0

是的,我将无法访问事物的切断面。 – user2066907 2013-02-27 05:06:34

回答

1
<input type="hidden" name="startdate" id="todayDate"/> 
<script type="text/javascript"> 
function getDate() 
{ 
    var today = new Date(); 
    var dd = today.getDate(); 
    var mm = today.getMonth()+1; //January is 0! 
    var yyyy = today.getFullYear(); 
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} 
    today = yyyy+""+mm+""+dd; 

    document.getElementById("todayDate").value = today; 
} 

//call getDate() when loading the page 
getDate(); 
</script> 
+0

也可以调用函数 – 2013-02-27 03:55:45

+0

如果您有解决方法,请将其标记为答案:) – PSR 2013-02-27 03:57:27

+0

这不考虑时区。该日期应该添加到服务器端,真的。 – bfavaretto 2013-02-27 04:16:12

3

如果您正在使用某种验证的日期,那么为了安全,你会使用服务器端脚本好得多;这样客户端不能欺骗日期。

此外,即使您使用服务器端生成日期,您也不应该使用<input>,因为您仍然可以使用Firebug或许多其他Web开发人员工具来欺骗时间。提交的HTTP POST(或其他)可能包含欺骗数据。最后没有什么是100%安全的。

+0

嗨Luke - 日期只是在表单提交时进行记录。表单访问者不会想要欺骗它,但是谢谢你提出这个问题。 – user2066907 2013-02-27 05:09:00