如何检查是否日期落入内未来7天
function validateDate() {
serverDateTime="2012-11-23 17:06:46";
txtDate.value="30-Nov-2012"
if (how i check here){
alert("Appointment can be fixed for next seven days only from current day.");
return false;
}else{
return true;
}
}
我得到上主的页面加载和访问serverDateTime,在所有页面变量,比较serverDateTime与txtDate.value我怎么确认预约可固定仅从今天开始的七天。如何检查是否日期落入内未来7天
I M使用此代码但仍然没有工作
function validateDate()
{
var dateDifference;
pickedDate = Date.parse(txtDate.value.replace(/-/g, " "));
todaysDate = new Date(serverDateTime);
todaysDate.setHours(0, 0, 0, 0);
dateDifference = Math.abs(Number(todaysDate) - pickedDate);
//7 Days=604800000ms
if (dateDifference > 604800000)
{
return false;
}
else
{
return true;
}
}
这应该工作:
//Get the date value of next week.
var today = new Date(serverDateTime);
var nextWeek = Date.parse(new Date(today.getFullYear(), today.getMonth(), today.getDate() + 7));
//If nextWeek is smaller (earlier) than the value of the input date, alert...
if (nextWeek < Date.parse(txtDate.value)){
alert("Appointment can be fixed for next seven days only from current day.");
return false;
}else{
return true;
}
if(serverDateTime.AddDays(7) < txtDate)
{
//Your Code
}
我必须比较txtDate.value与serverDateTime不要与客户日期比较 – lax
//Set 1 day in milliseconds
var one_day=1000*60*60*24;
var serverDateTime= new Date("2012-11-23 17:06:46");
var newDate = new Date("30-Nov-2012"); //replace with txtDate.value
//Calculate difference btw the two dates, and convert to days
var diff = Math.ceil((newDate.getTime() - serverDateTime.getTime())/one_day);
if(diff >= 7)
{
alert("7 days");
}
else
{
alert("Not up to 7 days");
}
这仅仅是来指导你。您可以read more here
之前,你可以比较日期,他们必须日期... 在你的榜样,他们都是字符串所以尝试这样的事:
function validateDate() {
var one_day=1000*60*60*24;
serverDateTime="2012-11-23 17:06:46";
txtDate.value="30-Nov-2012"
var _dtSvr = Date.parse(serverDateTime);
var _dtTxt = Date.parse(txtDate.value);
if (((_dtTxt - _dtSvr)/one_day) > 7){
alert("Appointment can be fixed for next seven days only from current day.");
return false;
}else{
return true;
}
}
试试这个,改变txtDate的值。值。 我还建议您对格式进行额外验证,以便正确理解日期。 在JavaScript中的MDN Date一脸的日期/时间的所有细节
编辑
我想这正是在Chrome(v23.xxx)控制台:
function validateDate(serverDateTime, txtDate)
{
var dateDifference;
pickedDate = Date.parse(txtDate.replace(/-/g, " "));
todaysDate = new Date(serverDateTime);
todaysDate.setHours(0, 0, 0, 0);
dateDifference = Math.abs(Number(todaysDate) - pickedDate);
//7 Days=604800000ms
if (dateDifference > 604800000)
{
return false;
}
else
{
return true;
}
}
然后我尝试这样做:
validateDate("2012-11-23 17:06:46", "30-Nov-2012")
返回 “真” 并试用了此:
validateDate("2012-11-23 17:06:46", "30-Dec-2012")
返回“假”
它看起来像这样回答你的问题,进一步的问题是什么做的算法中,但更喜欢你的浏览器如何解释它,以及如何对其进行管理。
_dtSvr NAN ........_ dtTxt NAN – lax
您是否阅读过我提供的链接以查看Javascript接受的日期/时间格式,并查看是否没有文化特定问题?大多数例子在这里给几个人和浏览器工作,为什么不是你的? –
更确切地说:你使用什么浏览器(名称和版本)?我注意到Firefox和Chrome之间的区别......不知何故,我总是忘记Internet Explorer;) –
cerebrus我必须比较txtDate.value与serverDateTime不要与客户日期比较 – lax
哎呀,忘了那个变量。 这应该这样做。它会在'serverDateTime'字符串中创建一个Date对象,并添加一个星期,然后将其与输入进行比较。 这些帽子是完全没有必要的。 – Cerbrus
这是因为'txtDate.value =“2012年11月30日”'是在7天内。代码起作用。 尝试'txtDate.value =“2012年12月5日”' 我假设'txtDate'确实是一个对象? – Cerbrus