我需要通过隐藏的表单输入字段以此格式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并将其发送到服务器,但没有任何成功。
你能告诉我如何在页面加载时将日期传递给我的隐藏输入字段吗?
我想知道这在安全性和黑客方面是否存在任何问题?
感谢您的帮助
答案 0 :(得分:3)
如果您使用日期进行某种验证,那么为了安全起见,使用服务器端脚本会更好;这样客户端就不会欺骗日期。
此外,即使您使用服务器端生成日期,也不应使用<input>
,因为您仍然可以使用Firebug或许多其他Web开发人员工具来欺骗时间。提交的HTTP POST(或其他)可能包含欺骗数据。最后,没有什么是100%安全的。
答案 1 :(得分:2)
<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>