我想检查08/2014是否大于02/2014 ..
我怎样才能在Javascript中做到这一点?有人可以帮我吗...
目前我只检查未来一年。这是代码段。
this.isDateGreaterThanCurrent=function(b){
return parseInt(b)>parseInt(new Date().getFullYear());
};
答案 0 :(得分:2)
使用moment.js(我推荐),然后..
var d1 = moment("08/2014", "MM/YYYY")
var d2 = moment("02/2014", "MM/YYYY")
d1.isBefore(d2) // false
d1.isAfter(d2) // true
然而,这可以通过手工完成而不需要太多努力。
创建一个接收“MM / YYYY”并返回“YYYY-MM”的函数。然后可以将结果与标准字符串比较进行比较。主要的第一个组件布局是像ISO 8601这样的格式很好的一个原因 - 即使是字符串,它也可以很容易地排序。
function toPartialIso(str) {
var m = str.match(/(\d{2})\/(\d{4})/);
if (m) {
return m[2] + "-" + m[1]
}
throw "bad date!"
}
toPartialIso("08/2014") < toPartialIso("02/2014") // false
toPartialIso("08/2014") > toPartialIso("02/2014") // true
答案 1 :(得分:1)
你快到了...... 使用split方法在日期之外创建数组
this.isDateGreaterThanCurrent=function(b){
var a = b.split('/');
if(parseInt(a[1])>parseInt(new Date().getFullYear())) return true;
else if (parseInt(a[1]) == parseInt(new Date().getFullYear()) && parseInt(a[0])>parseInt(new Date().getMonth())+1)return true;
else return false;
};
别忘了getMonth返回0到11之间的值,而不是1到12!
答案 2 :(得分:1)
使用
构造两个日期对象new Date(year, month) //month start from 0 (ie january is 0)
如,
d1 = new Date(2014, 7) // 08/2014 (month - 1)
d2 = new Date(2014, 1) // 02/2014
现在检查,
Date.parse(d1) > Date.parse(d2)
Date.parse()
,解析日期的字符串表示形式,并返回自当地时间1970年1月1日00:00:00以来的毫秒数。
答案 3 :(得分:1)
要比较格式中的两个日期,我们必须解析日期并提取月份和年份并进行比较
它优先使用一些第三方库
如果您想手动执行此操作,示例代码如下所示
function checkMonths(month1, month2) {
var m1 = month1.split("/");
var m2 = month2.split("/");
var res = -1;
if( parseInt(m1[1] ) > parseInt(m2[1]) ) {
res = 1;
} else if(parseInt(m1[1] ) == parseInt(m2[1])) {
if(parseInt(m1[0] ) > parseInt(m2[0])) {
res = 1;
} else if(parseInt(m1[0] ) == parseInt(m2[0])) {
res = 0;
}
}
return res;
}
工作演示JSFiddle demo
答案 4 :(得分:1)
Date
个对象可以比较。因此,您可以将其作为date
对象本身而不是解析它们。
function isDateGreaterThanToday(b) {
var dS = b.split("/");
var d1 = new Date(dS[1], (+dS[0] - 1));
var today = new Date();
if (d1 > today) {
return "D is greater";
} else {
return "today is greater";
}
}
console.log(isDateGreaterThanToday("08/2014"))