这是快速的实现
datediff,作为解决问题中提出的问题的概念证明。它依赖于这样一个事实,您可以通过减去两个日期来获得两个日期之间经过的毫秒数,这会将它们强制为原始数字值(自1970年初以来的毫秒数)。
// new Date("dateString") is browser-dependent and discouraged, so we'll write// a simple parse function for U.S. date format (which does no error checking)function parseDate(str) { var mdy = str.split('/'); return new Date(mdy[2], mdy[0]-1, mdy[1]);}function datediff(first, second) { // Take the difference between the dates and divide by milliseconds per day. // Round to nearest whole number to deal with DST. return Math.round((second-first)/(1000*60*60*24));}alert(datediff(parseDate(first.value), parseDate(second.value)));<input id="first" value="1/1/2000"/><input id="second" value="1/1/2001"/>
您应该注意,“常规”日期API(名称中没有“
UTC”)在用户浏览器的本地时区中运行,因此,如果您的用户所在的时区不是您所在的时区,那么通常会遇到问题期望,并且您的代码将必须处理夏令时过渡。您应该仔细阅读有关Date对象及其方法的文档,对于任何更复杂的内容,强烈建议您使用提供更安全和强大的API进行日期处理的库。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)