我的Javascript日期比较有什么问题
我想在javascript中比较两个日期,但在计算日期时,我得到了奇怪的值 有人能在我的代码中看到导致问题的任何明显的东西吗 问题是Todays date变量看起来像一个正常的日期,但我对下周和上周的计算结果是一个很大的数字,而且比较不起作用我的Javascript日期比较有什么问题,javascript,date,comparison,Javascript,Date,Comparison,我想在javascript中比较两个日期,但在计算日期时,我得到了奇怪的值 有人能在我的代码中看到导致问题的任何明显的东西吗 问题是Todays date变量看起来像一个正常的日期,但我对下周和上周的计算结果是一个很大的数字,而且比较不起作用 //Handles client side date selection changed function dateSelectionChanged(sender, args) { //Declare array for Day names
//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');
}
}
//处理更改的客户端日期选择
函数dateSelectionChanged(发送方,参数){
//为日期名称声明数组
风险值天数=[“周日”、“周一”、“周二”、“周三”、“周四”、“周五”、“周六”];
//得到日期
var date=sender.get_selectedDate();
//今天约会
var today=新日期();
var nextWeek=new Date().setDate(today.getDate()+7);
var lastWeek=new Date().setDate(today.getDate()-7);
//显示日期名称
$('#').val(days[date.getDay());
如果(日期<上周){
警报(“周下日期”);
}
如果(日期>下一周){
警报(“超过一周的日期”);
}
}
下面是调试中的代码,您可以看到这些值:
编辑:
解决方案
//处理更改的客户端日期选择
函数dateSelectionChanged(发送方,参数){
//为日期名称声明数组
风险值天数=[“周日”、“周一”、“周二”、“周三”、“周四”、“周五”、“周六”];
//得到日期
var date=sender.get_selectedDate();
//今天约会
var today=新日期();
var nextWeek=new Date().setDate(today.getDate()+7);
var lastWeek=new Date().setDate(today.getDate()-7);
//以更易于比较的格式获取日期
nextWeek=新日期(nextWeek);
上周=新日期(上周);
//显示日期名称
$('#').val(days[date.getDay());
如果(日期<上周){
警报(“周下日期”);
}
如果(日期>下一周){
警报(“超过一周的日期”);
}
}
对于setDate
,JavaScript返回时间戳,表示从1970年1月1日00:00:00到特定时刻的毫秒数。它可能看起来没用,但实际上非常有用,因为您可以将任何时间表示为一个简单的数字
如果您想取回日期
,您可以使用:
new Date(timestamp);
因此,例如添加:
nextWeek = new Date(nextWeek);
lastWeek = new Date(lastWeek);
对于
setDate
,JavaScript返回时间戳,它表示从1970年1月1日00:00:00到特定时刻的毫秒数。它可能看起来没用,但实际上非常有用,因为您可以将任何时间表示为一个简单的数字
如果您想取回日期
,您可以使用:
new Date(timestamp);
因此,例如添加:
nextWeek = new Date(nextWeek);
lastWeek = new Date(lastWeek);
如果不提供任何参数,构造函数将为其创建日期对象
今天的日期和时间取决于当地时间。如果你提供一些
参数,而不是其他参数,缺少的参数设置为0。如果你
如果提供任何参数,则必须至少提供年、月和
白天可以省略小时、分钟、秒和毫秒
自1970年1月1日午夜起,日期以毫秒为单位
UTC。
一天可容纳86400000毫秒。日期对象范围为
-相对于1970年1月1日的100000000天至100000000天
UTC
在比较日期时,请尝试以下代码
if ( today < lastWeek.getMilliseconds() ) {
alert('Date Under Week');
}
if ( today > nextWeek.getMilliseconds() ) {
alert('Date Over Week');
}
if(今天nextWeek.getmillizes()){
警报(“超过一周的日期”);
}
Date对象提供跨平台的统一行为
如果不提供任何参数,构造函数将为其创建日期对象
今天的日期和时间取决于当地时间。如果你提供一些
参数,而不是其他参数,缺少的参数设置为0。如果你
如果提供任何参数,则必须至少提供年、月和
白天可以省略小时、分钟、秒和毫秒
自1970年1月1日午夜起,日期以毫秒为单位
UTC。
一天可容纳86400000毫秒。日期对象范围为
-相对于1970年1月1日的100000000天至100000000天
UTC
在比较日期时,请尝试以下代码
if ( today < lastWeek.getMilliseconds() ) {
alert('Date Under Week');
}
if ( today > nextWeek.getMilliseconds() ) {
alert('Date Over Week');
}
if(今天nextWeek.getmillizes()){
警报(“超过一周的日期”);
}
Date对象提供跨平台的统一行为
另一种方法是像这样设置日期
var today = new Date();
var nextWeek = new Date();
nextWeek.setDate(today.getDate() + 7);
var lastWeek = new Date();
lastWeek.setDate(today.getDate() - 7);
另一种方法是像这样设置日期
var today = new Date();
var nextWeek = new Date();
nextWeek.setDate(today.getDate() + 7);
var lastWeek = new Date();
lastWeek.setDate(today.getDate() - 7);
到底是什么问题?你得到的大量数据?只是一个评论,因为这并不是一个完整的答案。另一种方法是今天强制
成为一个数字。这其实很简单:today=+(newdate())代码>到底是什么问题?你得到的大量数据?只是一个评论,因为这并不是一个完整的答案。另一种方法是今天强制成为一个数字。这其实很简单:today=+(newdate())代码>谢谢,看来问题已经解决了。我将今天的日期与下周和上周的日期进行比较,而不是与选定的日期进行比较,这是毫无帮助的@幽灵纳:哦,我没看到。您可能需要date.setDate
来代替。谢谢,看来问题已经解决了。我将今天的日期与下周和上周的日期进行比较,而不是与选定的日期进行比较,这是毫无帮助的@幽灵纳:哦,我没看到。你可能想要date.setDate
来代替。谢谢,我刚刚意识到我也在将今天的日期与上周和下周的日期进行比较,这是行不通的!已更新代码以使用所选日期。由于lastWeek
和nextWeek
是数字,因此这些功能不可用。此外,它在一秒钟内返回毫秒,因此它不是非常有用,在本例中它们是相同的,因为只有日期号有b