可以用javascript进行日期验证吗?

可以用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") 这将以毫秒为单位返回一个数字。

我必须检查两个日期的差异是否超过两天。例如,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")

这将以毫秒为单位返回一个数字。

一个解决方案是使用简单的字符串解析为每个日期创建一个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
(很遗憾)