date diff
by Евгений
HTML
<form name="form">
<!-- Между
<input type="text" name="years" value="2008" size="4" title="введите год: хххх">
<input type="text" name="months" value="1" size="2" title="введите месяц: х">
<input type="text" name="days" value="20" size="2" title="введите день: х">
и
<input type="text" name="yeare" value="2012" size="4" title="введите год: хххх">
<input type="text" name="monthe" value="2" size="2" title="введите месяц: х">
<input type="text" name="daye" value="25" size="2" title="введите день: х">
<input type="button" value="Считаем" onclick="go()">
<br />-->
<span id="res"></span>
</form>
<script>
function DateOffset(dd1, dd2) {
var d1, d2, y, m, d, dec_m = 0, dec_y = 0;
if(dd1>=dd2) {d1 = dd2; d2 = dd1} else {d1 = dd1; d2 = dd2};
var y_s = d1.getFullYear(),
y_e = d2.getFullYear(),
m_s = d1.getMonth(),
m_e = d2.getMonth(),
d_s = d1.getDate(),
d_e = d2.getDate();
d = d_e - d_s;
if (d_s > d_e) {
d+= new Date(d2.getFullYear(), d2.getMonth(), 0).getDate();
dec_m = 1
}
m = m_e - m_s - dec_m;
if (m < 0) {
m += 12;
dec_y = 1
}
y = y_e - y_s - dec_y;
return {'year':y, 'months':m, 'days':d}
}
function plural(n,str1,str2,str3){
return ((((n%10)==1)&&((n%100)!=11))?(n + str1):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(n + str2):(n + str3)))
}
var dd1 = new Date(2011, 2, 6);// 6 марта 2011
var dd2 = new Date();//сегодня
//function go() {
//var dd1 = new Date(document.form.years.value, document.form.months.value - 1, document.form.days.value);
//var dd2 = new Date(document.form.yeare.value, document.form.monthe.value - 1, document.form.daye.value);
document.getElementById('res').innerHTML = 'прошло ' + plural(DateOffset(dd1, dd2).year, ' год',' года',' лет') + ', ' + plural(DateOffset(dd1, dd2).months, ' месяц',' месяца',' месяцев') + ', ' + plural(DateOffset(dd1, dd2).days, '...