从HTML表单生成日期的最佳方法


Best approach for generating dates from an HTML Form

我通过HTML从用户那里获得数据,我必须在不同的时间段生成许多日期。

什么是最高效的?

JS处理数据,然后通过hidden HTML
发送给服务器或
直接发送给服务器,在PHP上处理。

我必须在这个JS代码链接上做的事情之一的例子。

谢谢,

Date.prototype.addDays = function(days) {
   var dat = new Date(this.valueOf())
   dat.setDate(dat.getDate() + days);
   return dat;

}

function getDates(startDate, stopDate) {
  var dateArray = new Array();
  var currentDate = startDate;
  while (currentDate <= stopDate) {
    dateArray.push(currentDate)
    currentDate = currentDate.addDays(1);
  }
  return dateArray;
}
var dateArray = getDates(new Date(), (new Date()).addDays(2));
for (i = 0; i < dateArray.length; i ++ ) {
  alert (dateArray[i]);
}

如果您想要快速,顺利的响应,请在客户端处理日期。

一般来说,对要存储在服务器上的任何数据进行服务器端验证。即使有客户端验证,也很容易有人向PHP脚本发送虚假数据。

<?php
  date_default_timezone_set('America/Los_Angeles');
?>

您应该确保您的服务器配置正确,并将上面的代码与正确的时区一起使用。使用PHP getdate()函数返回一个易于使用的关联数组。客户端是不可靠的,因为用户可以调整他们的系统时钟。当然,您必须考虑到用户的位置,以确定显示的时间调整。你可以使用Javascriptnavigator.geolocationgoogle.maps API来获得用户的位置,但你可能需要支付谷歌根据你的使用。