在javascript中转换年-月-日中的天数

Hel*_*pha 5 javascript date

嗨,我已经搜索了一段时间,但似乎找不到答案。

我必须在 JavaScript 中编写一个函数,该函数需要几天的参数,然后将其转换为更容易理解的字符串。

前任 :

function getFormatedStringFromDays(days)
{
var formatedString = "";
//... logic
return formatedString;
}
Run Code Online (Sandbox Code Playgroud)

getFormatedStringFromDays(183)返回类似的东西也是如此6 months 3 days

Ser*_*ell 7

假设一年有 365 天,一个月有 30 天,答案可能如下。否则应该有更多的输入参数

function getFormatedStringFromDays(numberOfDays) {
    var years = Math.floor(numberOfDays / 365);
    var months = Math.floor(numberOfDays % 365 / 30);
    var days = Math.floor(numberOfDays % 365 % 30);

    var yearsDisplay = years > 0 ? years + (years == 1 ? " year, " : " years, ") : "";
    var monthsDisplay = months > 0 ? months + (months == 1 ? " month, " : " months, ") : "";
    var daysDisplay = days > 0 ? days + (days == 1 ? " day" : " days") : "";
    return yearsDisplay + monthsDisplay + daysDisplay; 
}
Run Code Online (Sandbox Code Playgroud)

不是最优雅的解决方案,但它应该有效

  • 晚了几年,但我想我无论如何都会为追随我的人发表评论,因为无论如何这是我的第一个谷歌点击。该代码运行良好,但不够精确。一年有365.242199天。一个月为 30.147 天(平年),闰年为 30.5 天。一个世纪的加权平均数为 30.43692 天。相反,使用这些数字给了我准确的结果。 (3认同)