Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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_Html - Fatal编程技术网

将日期与Javascript中的指定格式进行比较

将日期与Javascript中的指定格式进行比较,javascript,html,Javascript,Html,我有两个日期,分别为2013年5月14日和2013年6月15日 firstDate.setFullYear(firstValue[0],firstValue[1], firstValue[2]); 我如何比较这两个日期 这是我的代码,但它似乎工作不好 if (col == 8 && m == 2) { var firstValue = document.getElementById(tableID+m+""+6).innerHTML.split('-'); va

我有两个日期,分别为2013年5月14日和2013年6月15日

firstDate.setFullYear(firstValue[0],firstValue[1], firstValue[2]);
我如何比较这两个日期

这是我的代码,但它似乎工作不好

if (col == 8 && m == 2) {
    var firstValue = document.getElementById(tableID+m+""+6).innerHTML.split('-');
    var secondValue = document.getElementById(tableID+m+""+7).innerHTML.split('-');

    var firstDate=new Date();
    firstDate.setFullYear(firstValue[0],firstValue[1], firstValue[2]);

    var secondDate=new Date();
    secondDate.setFullYear(secondValue[0],secondValue[1], secondValue[2]);     

    if (firstDate < secondDate) 
    {
        alert("First Date  is less than Second Date");
    }
    else
    {
        alert("Second Date  is less than First Date");
    }   
}
if(col==8&&m==2){
var firstValue=document.getElementById(tableID+m+“”+6).innerHTML.split('-');
var secondValue=document.getElementById(tableID+m+“”+7).innerHTML.split('-');
var firstDate=新日期();
firstDate.setFullYear(firstValue[0],firstValue[1],firstValue[2]);
var secondDate=新日期();
secondDate.setFullYear(secondValue[0],secondValue[1],secondValue[2]);
如果(第一个日期<第二个日期)
{
警报(“第一个日期小于第二个日期”);
}
其他的
{
警报(“第二个日期小于第一个日期”);
}   
}
我做错了什么?我如何使它正确工作


谢谢

当我比较两者时,我将时间转换为Unix时间。结果更加可靠。在javascript中,这将是getTime()函数

所以对于您来说,firstDate.getTime()

当我比较两者时,我将时间转换为Unix时间。结果更加可靠。在javascript中,这将是getTime()函数

所以对于您来说,firstDate.getTime()

更改为此

if(firstDate.getTime() < secondDate.getTime()){
  //do something
} else {
  //do something else
}
if(firstDate.getTime()
getTime方法返回的值是毫秒数 自1970年1月1日起UTC 00:00:00

所以你基本上是在比较日期的两毫秒表示法

换成这个

if(firstDate.getTime() < secondDate.getTime()){
  //do something
} else {
  //do something else
}
if(firstDate.getTime()
getTime方法返回的值是毫秒数 自1970年1月1日起UTC 00:00:00

所以你基本上是在比较日期的两毫秒表示法

格式
2013年5月14日
2013年6月15日

firstDate.setFullYear(firstValue[0],firstValue[1], firstValue[2]);
我做错了什么

setFullYear
不使用月份名称或缩写。您必须解析日期格式,才能首先获得月数

function parse(str) {
    var vals = str.split('-');
    return new Date(
        +vals[0],
        ["jan","feb","mar","apr","may","jun","jul","aug","sep",
         "oct","nov","dez"].indexOf(vals[1].toLowerCase()),
        +vals[2]
    );
}
var firstDate = parse(document.getElementById(tableID+m+""+6).innerHTML)
var secondDate = parse(document.getElementById(tableID+m+""+7).innerHTML);
if (firstDate < secondDate) {
    alert("First Date  is less than Second Date");
} else {
    alert("Second Date  is less than or equal to First Date");
}
函数解析(str){
var-vals=str.split('-');
返回新日期(
+VAL[0],
[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“oct”、“nov”、“dez”].indexOf(vals[1].toLowerCase()),
+VAL[2]
);
}
var firstDate=parse(document.getElementById(tableID+m+“”+6).innerHTML)
var secondDate=parse(document.getElementById(tableID+m+“”+7.innerHTML);
如果(第一个日期<第二个日期){
警报(“第一个日期小于第二个日期”);
}否则{
警报(“第二个日期小于或等于第一个日期”);
}
格式
2013年5月14日
2013年6月15日

firstDate.setFullYear(firstValue[0],firstValue[1], firstValue[2]);
我做错了什么

setFullYear
不使用月份名称或缩写。您必须解析日期格式,才能首先获得月数

function parse(str) {
    var vals = str.split('-');
    return new Date(
        +vals[0],
        ["jan","feb","mar","apr","may","jun","jul","aug","sep",
         "oct","nov","dez"].indexOf(vals[1].toLowerCase()),
        +vals[2]
    );
}
var firstDate = parse(document.getElementById(tableID+m+""+6).innerHTML)
var secondDate = parse(document.getElementById(tableID+m+""+7).innerHTML);
if (firstDate < secondDate) {
    alert("First Date  is less than Second Date");
} else {
    alert("Second Date  is less than or equal to First Date");
}
函数解析(str){
var-vals=str.split('-');
返回新日期(
+VAL[0],
[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“oct”、“nov”、“dez”].indexOf(vals[1].toLowerCase()),
+VAL[2]
);
}
var firstDate=parse(document.getElementById(tableID+m+“”+6).innerHTML)
var secondDate=parse(document.getElementById(tableID+m+“”+7.innerHTML);
如果(第一个日期<第二个日期){
警报(“第一个日期小于第二个日期”);
}否则{
警报(“第二个日期小于或等于第一个日期”);
}

为什么不将这些日期转换为毫秒?为什么不将这些日期转换为毫秒?为什么?
为什么?
为什么?
如果不使用unix时间,比较两个日期就更难了。5月31日比6月20日大还是小?Javascript可能会说20小于31,或者说05小于06。这将需要更详细的功能。处理只有一个数字常量的日期要容易得多(而不是像2013年6月10日那样的3个或更多的日期)。为什么要将日期对象字符串化为5月31日(假设已经解析了它们)?我说的是,
Bergi,仔细想想,我相信你是对的。javascript中的比较运算符将日期转换为基本值,即unix时间。我总是使用getTime()来比较javascript日期对象,当然,也会按预期接收结果。我很好奇为什么getTime()函数解决了OP的问题。为什么?
如果不使用unix时间,比较两个日期就更难了。5月31日比6月20日大还是小?Javascript可能会说20小于31,或者说05小于06。这将需要更详细的功能。处理只有一个数字常量的日期要容易得多(而不是像2013年6月10日那样的3个或更多的日期)。为什么要将日期对象字符串化为5月31日(假设已经解析了它们)?我说的是,
Bergi,仔细想想,我相信你是对的。javascript中的比较运算符将日期转换为基本值,即unix时间。我总是使用getTime()来比较javascript日期对象,当然,也会按预期接收结果。我很好奇为什么getTime()函数解决了OP的问题。