我有两个日期选择器,用于计算两个日期之间的天数.目前我正在输出天数(见下面的代码),这是毫无意义的.我想以年,月,日输出该数字.我怎样才能做到这一点?
例如,2014年1月1日至01/02/15 = 397天,然后成为1年,1个月,1天
var diff = endDate - startDate;
dayCount = diff / ( 60 * 60 * 24 * 1000 ); // secs * mins * hours * milliseconds
dayCount = Math.round( dayCount ) + this.options.countAdjust;
return dayCount;
Run Code Online (Sandbox Code Playgroud)
你的计算中有一个错误:它是0个月.如果你的意思是d/m/y那么
1 year, 1 month, and 0 day old.
你说 在两个日期之间(不包括) - 看这里
无论如何,这里是正确的代码,包括每个月实际计数 - 它有多少天!(闰年考虑):
注意 :
我把它实例化为d/m/yyy.随时发送正确的模式:
alert(getAge( new Date(2014,0,1),new Date(2015,0,2)))
function getAge(date_1, date_2)
{
//convert to UTC
var date2_UTC = new Date(Date.UTC(date_2.getUTCFullYear(), date_2.getUTCMonth(), date_2.getUTCDate()));
var date1_UTC = new Date(Date.UTC(date_1.getUTCFullYear(), date_1.getUTCMonth(), date_1.getUTCDate()));
var yAppendix, mAppendix, dAppendix;
//--------------------------------------------------------------
var days = date2_UTC.getDate() - date1_UTC.getDate();
if (days < 0)
{
date2_UTC.setMonth(date2_UTC.getMonth() - 1);
days += DaysInMonth(date2_UTC);
}
//--------------------------------------------------------------
var months = date2_UTC.getMonth() - date1_UTC.getMonth();
if (months < 0)
{
date2_UTC.setFullYear(date2_UTC.getFullYear() - 1);
months += 12;
}
//--------------------------------------------------------------
var years = date2_UTC.getFullYear() - date1_UTC.getFullYear();
if (years > 1) yAppendix = " years";
else yAppendix = " year";
if (months > 1) mAppendix = " months";
else mAppendix = " month";
if (days > 1) dAppendix = " days";
else dAppendix = " day";
return years + yAppendix + ", " + months + mAppendix + ", and " + days + dAppendix + " old.";
}
function DaysInMonth(date2_UTC)
{
var monthStart = new Date(date2_UTC.getFullYear(), date2_UTC.getMonth(), 1);
var monthEnd = new Date(date2_UTC.getFullYear(), date2_UTC.getMonth() + 1, 1);
var monthLength = (monthEnd - monthStart) / (1000 * 60 * 60 * 24);
return monthLength;
}
alert(getAge(new Date(2014, 0, 1), new Date(2015, 1, 1)))Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12452 次 |
| 最近记录: |