javascript中的月-年比较
我有两个输入字段,在其中输入月份和年份。并以图形表示方式显示数据。 领域1:2016年1月 领域2:2015年1月 我必须比较和此字段,如果Field1>Field2,则必须显示警报消息 如何在java脚本中进行比较javascript中的月-年比较,javascript,Javascript,我有两个输入字段,在其中输入月份和年份。并以图形表示方式显示数据。 领域1:2016年1月 领域2:2015年1月 我必须比较和此字段,如果Field1>Field2,则必须显示警报消息 如何在java脚本中进行比较 输入类型格式为月-年您可以使用JavaScript日期对象来比较日期: 新日期(“2016年1月”)>新日期(“2015年1月”)/->true理想情况下,您应该比较日期对象,但日期不能解析所用格式的字符串 如果将日期格式化为“2015-01”和“2016-01”,则可以使用Jav
输入类型格式为月-年您可以使用JavaScript日期对象来比较日期:
新日期(“2016年1月”)>新日期(“2015年1月”)/->true
理想情况下,您应该比较日期对象,但日期不能解析所用格式的字符串
如果将日期格式化为“2015-01”和“2016-01”,则可以使用Javascript的日期对象来比较它们
这样做的好处是,如果需要,您可以继续在脚本中使用这些作为实际日期表示
注意:如果将日期格式化为,例如,“201501”和“201601”,则可以使用简单的大于或小于比较
因此,您需要:
您可以在代码中使用这个小示例
var date_1 = new Date('2017', '01');
var date_2 = new Date('2015', '02');
if (date_1.getTime() > date_2.getTime()) {
/* YOUR CODE */
}
更新:2016/04/21
使用+
运算符(更简洁):
通过使用valueOf()
:
您可以分离字符串,查找月份号并返回所需的比较
功能更大(f1、f2){
函数getDate(f){
var d=f.分割('-');
d[0]={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12}[d[0].toLowerCase()];
返回d;
}
变量d1=获取日期(f1),
d2=获取日期(f2);
返回d1[1]>d2[1]| | d1[1]==d2[1]&&d1[0]>d2[0];
}
文件写入(较大('2016年1月'、'2015年1月')+'
';
文件写入(较大('2016年2月'、'2016年1月')+'
;
文件书写(较大('2014年2月'、'2016年1月')+'
代码>您可以使用JavaScript库
要获取日期对象,请使用
var date1= moment("Jan-2016","MMM-YYYY");
类似地,对第二个日期执行此操作,然后将其作为date1>date2
进行比较,如果您具有一致的字符串格式“YYYY-MM”
,例如“2020-10”
,“2021-01”
,则您甚至不必将其转换为日期进行精确比较,如果您只想知道哪个月是下一个月,请直接比较字符串值
试试这个:
var d1 = "2020-12";
var d2 = "2021-01";
var greaterMth = d2 > d1 ? d2 : d1;
alert("Greater month is: " + greaterMth);
但对于您的情况,这将是:
var d1 = new Date("Jan-2016");
var d2 = new Date("Jan-2015");
greaterMth = d2 > d1 ? "Jan-2015" : "Jan-2016";
alert("Greater month is: " + greaterMth);
您甚至不必担心由新日期()生成的月1日
您可以共享可执行的演示/代码片段吗?您可以使用月数组的索引来比较月份
。使用数字比较来比较年份
可能的重复。您可以与示例共享该小提琴吗。我不能用这种格式。如果你这样做,你会得到“无效日期”,日期不能解析这种格式。
var d1 = "2020-12";
var d2 = "2021-01";
var greaterMth = d2 > d1 ? d2 : d1;
alert("Greater month is: " + greaterMth);
var d1 = new Date("Jan-2016");
var d2 = new Date("Jan-2015");
greaterMth = d2 > d1 ? "Jan-2015" : "Jan-2016";
alert("Greater month is: " + greaterMth);