gpt4 book ai didi

javascript - 将天数转换为年、月、日

转载 作者:数据小太阳 更新时间:2023-10-29 05:12:27 33 4
gpt4 key购买 nike

我有两个日期选择器,用于计算两个日期之间的天数。目前我输出的天数(见下面的代码)有点毫无意义。我想以年、月、日为单位输出该数字。我该怎么做?

例如 01/01/14 到 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;

最佳答案

您的计算有一个错误:现在是0个月。如果你的意思是 d/m/y 那么1 年 1 个月零 0 天。

你说在两个日期之间(不包括)- look here

无论如何这是正确的代码,其中包括每个月的实际计数 - 它有多少天! (考虑闰年):

注意事项:

我将其实例化为 d/m/yyy。请随意发送正确的模式:

alert(getAge( new Date(1978,11,22),new Date()))

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(1978, 11, 22), new Date()))

关于javascript - 将天数转换为年、月、日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159269/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com