可以用javascript进行日期验证吗?
我必须检查两个日期的差异是否超过两天。例如,2014年1月14日和2014年1月15日符合标准,因为只有一天的差异,但2014年1月14日和2014年1月18日不符合标准,因为后者有4天的差异。日期是字符串格式的,所以我尝试了各种数据转换,但都没有成功。总之,我想知道是否有可能创建一个if语句,减去两个字符串格式日期的值,如果值大于'n',则给出一个错误。谢谢 试试看可以用javascript进行日期验证吗?,javascript,date,string-comparison,Javascript,Date,String Comparison,我必须检查两个日期的差异是否超过两天。例如,2014年1月14日和2014年1月15日符合标准,因为只有一天的差异,但2014年1月14日和2014年1月18日不符合标准,因为后者有4天的差异。日期是字符串格式的,所以我尝试了各种数据转换,但都没有成功。总之,我想知道是否有可能创建一个if语句,减去两个字符串格式日期的值,如果值大于'n',则给出一个错误。谢谢 试试看 new Date("MM/DD/YYYY") - new Date("MM/DD/YYYY") 这将以毫秒为单位返回一个数字。
new Date("MM/DD/YYYY") - new Date("MM/DD/YYYY")
这将以毫秒为单位返回一个数字。一个解决方案是使用简单的字符串解析为每个日期创建一个Javascript日期对象(),使用.getTime()函数以毫秒为单位获取值,并检查该值是否大于1000 x 60 x 60 x 24 x 2
// https://gist.github.com/remino/1563878
// Converts millseconds to object with days, hours, minutes ans seconds.
function convertMS(ms) {
var d, h, m, s;
s = Math.floor(ms / 1000);
m = Math.floor(s / 60);
s = s % 60;
h = Math.floor(m / 60);
m = m % 60;
d = Math.floor(h / 24);
h = h % 24;
return { d: d, h: h, m: m, s: s };
};
var start_date = '04/15/2014';
var end_date = '04/16/2014';
var diff = convertMS(Date.parse(end_date) - Date.parse(start_date));
if(diff.d > 1) {
console.log('The difference is more than one day!');
}
else {
console.log('The difference is just one day and therefore accepted!');
}
查看js小提琴:看到js摆弄了一天多的差异:你真的搞不懂吗?-><代码>如果((新日期('01/14/2015').getTime()-新日期('01/15/2014').getTime())>(1000*60*60*24*2))它不是
DD/MM/yyyyy
(很遗憾)