我正面临着在Javascript中按间隔比较日期的问题。
我必须使用在数据库中硬编码的1 year
,6 months
等区间名称,将它们与now()
进行比较,以查看所选日期是否在此区间内。
我似乎无法找到任何能够做到这一点的功能。像
这样的东西 PostgreSQL中的 now() + interval '1 year'
答案 0 :(得分:0)
您可以使用获取和设置日期组件的方法。
示例:
var d = new Date();
d.setMonth(d.getMonth() + 6);
document.write(d);
将组件设置为超出范围的值将调整其他组件以形成正确的日期。例如,如果您在10月份添加六个月,以便将月份数设置为15,则会自动换行到下一年并将月份设置为4月。
使用像"6 months"
这样的字符串只需要解析字符串并进行正确的操作。例如:
var d = new Date();
var s = '6 months';
var p = s.split(' ');
var n = parseInt(p[0], 10);
switch (p[1]) {
case 'year':
case 'years': d.setFullYear(d.getFullYear() + n); break;
case 'month':
case 'mongths': d.setMonth(d.getMonth() + n); break;
case 'day':
case 'days': d.setDate(d.getDate() + n); break;
}
答案 1 :(得分:0)
如果我正确地遵循了这个问题,您可以使用JavaScript日期方法getFullYear
,getMonth
等,并使用一些逻辑:
var datestring = "1992-06-22";
var d = new Date(datestring); // date from sql
var year = d.getFullYear();
var month = d.getMonth();
if (year == 2015)
document.write("This year");
else if (year > 2005)
document.write("Within last ten years")
else if (year > 1965)
document.write("Within last fifty years")
if (year == 2015 && month < 6)
document.write("First six months of this year")
//and so on