需要通过javascript进行更正或建议,以计算两个日期之间的差异

时间:2016-08-10 03:30:38

标签: javascript html difference

年龄计算

我从很多网站收集这个JavaScript;我想在两个不同的日期之间变老;
在这个剧本或例子中,我希望展示我的女儿年龄 ;;一切顺利直到她的年龄超过6个月

脚本将年龄舍入到上面的数字 (在这种情况下为一年),以及 向下舍入月份,显示减去月份的数字。

好吧,如果 少于365天 ,我希望脚本能够将年份四舍五入到较低的数字, 自从<365天 以来, 四舍五入的几个月。

&#13;
&#13;
<!-- Calculate Age -->
<script type="text/javascript">
var s = '2016-01-31T17:17:28.593Z';
var a = s.split(/[^0-9]/);
var d=new Date (a[0],a[1]-1,a[2],a[3],a[4],a[5] );
var fromDate = new Date(d);
var toDate = new Date();

// current date format as mm-dd-yyyy 
    var Start_Date = new Date(d);
    var sec = Start_Date.getSeconds();
    var min = Start_Date.getMinutes();
    var hr = Start_Date.getHours();
    var dd = Start_Date.getDate();
    var mm = Start_Date.getMonth()+1; //January is 0!
    var yyyy = Start_Date.getFullYear();
	if(dd<10){
			dd='0'+dd
		} 
	if(mm<10){
			mm='0'+mm
		}
	if(hr<10){
			hr='0'+hr
		}
	if(min<10){
			min='0'+min
		}
var Start_Date = dd+'-'+mm+'-'+yyyy+'&nbsp at <span style="direction:ltr; color:red ;font-weight:700;">[&nbsp'+hr+ ":" +min+ ":" +sec+'&nbsp]</span>';
// End date format as mm-dd-yyyy
// Start_Date = str;
var differenceTravel = toDate.getTime() - fromDate.getTime();
// var months = Math.ceil (toDate.getMonth() - fromDate.getMonth() + (12 * (toDate.getFullYear() - 
// 1 day = 86400000,
var Tyears = Math.round(differenceTravel/1000/60/60/24/365);
var Tmonths = Math.round((differenceTravel - (Tyears * 365*60*60*24*1000)) / (1000*60*60*24*30));
var Tdays = Math.round((differenceTravel - (Tyears *60*60*24*365*1000) - (Tmonths *60*60*24*30*1000))/ (86400000));
//
document.writeln('<div style="color:Blue">');
document.writeln('<ul>');
document.writeln('<li><span style="color:Navy">Seba Birthday:&nbsp;</span> ' + Start_Date +'</li>');
document.write('<li><span style="color:MediumVioletRed">Her age is:</span>&nbsp; '+ Tyears +'<span style="color:Green">&nbsp;year &nbsp; and &nbsp; </span>'+ Tmonths +'<span style="color:Green">&nbsp;months &nbsp; and &nbsp;</span>'+ Tdays +'<span style="color:Green">&nbsp;days</span></li>');
document.writeln('</ul></div>');
</script>
<!-- / good -->
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

如果您要向下舍入,请使用Math.floor,而不是Math.round,这会根据值<还是>而不是{{0.5进行向上或向下舍入。 1}}。

答案 1 :(得分:0)

更改这三行:

var Tyears = Math.round(differenceTravel/1000/60/60/24/365);
var Tmonths = Math.round((differenceTravel - (Tyears * 365*60*60*24*1000)) / (1000*60*60*24*30));
var Tdays = Math.round((differenceTravel - (Tyears *60*60*24*365*1000) - (Tmonths *60*60*24*30*1000))/ (86400000));

以下内容:

var Tyears = Math.floor(differenceTravel/1000/60/60/24/365);
var Tmonths = Math.ceil((differenceTravel - (Tyears * 365*60*60*24*1000)) / (1000*60*60*24*30));
var Tdays = Math.round((differenceTravel - (Tyears *60*60*24*365*1000) - (Tmonths *60*60*24*30*1000))/ (86400000));