Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的Javascript日期比较有什么问题_Javascript_Date_Comparison - Fatal编程技术网

我的Javascript日期比较有什么问题

我的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

我想在javascript中比较两个日期,但在计算日期时,我得到了奇怪的值

有人能在我的代码中看到导致问题的任何明显的东西吗

问题是Todays date变量看起来像一个正常的日期,但我对下周和上周的计算结果是一个很大的数字,而且比较不起作用

//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