【发布时间】:2011-08-18 09:27:34
【问题描述】:
我很想在 javascript 中比较两个日期,但是在计算日期时我得到了奇怪的值。
任何人都可以在我的代码中看到导致问题的明显内容吗?
问题是今天的日期变量看起来像一个正常的日期,但我对下周和上周的计算得出的数字很大,比较不起作用。
//Handles client side date selection changed
function dateSelectionChanged(sender, args) {
//Declare array for Day names
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
//Get the date
var date = sender.get_selectedDate();
//Get todays Date
var today = new Date();
var nextWeek = new Date().setDate(today.getDate() + 7);
var lastWeek = new Date().setDate(today.getDate() - 7);
//Show the day name
$('#<%= txtDay.ClientID %>').val(days[date.getDay()]);
if ( date < lastWeek ) {
alert('Date Under Week');
}
if ( date > nextWeek ) {
alert('Date Over Week');
}
}
这是 Debug 中的代码,因此您可以查看值:
编辑: 解决方案
//Handles client side date selection changed
function dateSelectionChanged(sender, args) {
//Declare array for Day names
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
//Get the date
var date = sender.get_selectedDate();
//Get todays Date
var today = new Date();
var nextWeek = new Date().setDate(today.getDate() + 7);
var lastWeek = new Date().setDate(today.getDate() - 7);
//Get the dates in easier to compare format
nextWeek = new Date(nextWeek);
lastWeek = new Date(lastWeek);
//Show the day name
$('#<%= txtDay.ClientID %>').val(days[date.getDay()]);
if ( date < lastWeek) {
alert('Date Under Week');
}
if ( date > nextWeek) {
alert('Date Over Week');
}
}
【问题讨论】:
-
到底是什么问题?您获得的大量数字?
-
只是一个评论,因为这并不是一个完整的答案。另一种方法是强制
today成为一个数字。这其实很简单:today = +(new Date());
标签: javascript date comparison