2012-02-21 81 views
1
var onemonth = 3; 
var oneyear = 2005; 
var twomonth = 10; 
var twoyear = 2000; 

如何分割這個和比較? 在這個例子是:比較幾個月和jQuery

var firstdate = onemonth + oneyear; 
var seconddate = twomonth + twoyear; 

if(firstdate < seconddate){ 
alert('error'); 
} 

如何是比較兩個日期,如果我只有一個月,一年最好的方法是什麼?

LIVE:http://jsfiddle.net/26zms/

回答

3

有關使用本地Date對象是這樣麼?

if (new Date(oneyear, onemonth) < new Date(twoyear, twomonth)){ 
    alert('error'); 
}else{ 
    alert('ok'); 
} 

隨着你的變量它會產生「OK」。

+2

通常你必須從'onemonth'和'twomonth'減去1。月份到日期對象是從零開始的。所以,如果你通過'12',年份會增加一個,而這個月是一月份。 **對於這種情況**,這並不重要,因爲兩個「日期」對象都被轉發了一個月。 (如果你不理解上一行:'3 <10'等於'3-1 <10-1')。 – 2012-02-21 16:04:14

+0

你說的都對!只要'新日期(2011,12)'等同於'新日期(2012,0)',比較就是安全的。 – 2012-02-21 17:35:06

2

然後做適當的日期;

var firstdate = new Date(oneyear, onemonth - 1, 1); 
var seconddate = new Date(twoyear, twomonth - 1, 1); 

則比較是有效的(相對於比較隨意創建整數)

1

acording給我追加零比concate串

var onemonth = 3; 
if(onemonth < 10) 
onemonth = "0" + onemonth; 
var oneyear = 2005; 
var oneyearmonth = oneyear + onemonth; // 200503 
var twomonth = 10; 
if(twomonth < 10) 
twomonth = "0" + twomonth ; 
var twoyear = 2000; 
var twoyearmonth = twoyear + twomonth ; //200010 
if(oneyearmonth < twoyearmonth) 
{ 
    alert("one month and year leass than tow month and year"); 
} 
1

沒有必要使用Date對象這個案例。簡單的數學就足夠了:

  • 將月份除以12。
  • 將此值添加到年份。
  • 做其他日期(或多個)相同,比較值:

代碼:

var onemonth = 3; 
var oneyear = 2005; 
var twomonth = 10; 
var twoyear = 2000; 

var year1 = oneyear + onemonth/12; 
var year2 = twoyear + twomonth/12; 
if (year1 < year2) { 
    // error? 
}