Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中转换年、月、日的天数_Javascript_Date - Fatal编程技术网

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

在javascript中转换年、月、日的天数,javascript,date,Javascript,Date,嗨,我已经找了一段时间了,我似乎找不到这个问题的答案 我必须用javascript编写一个函数,在参数中花费数天的时间,然后将其转换为更容易理解的字符串 例: 因此,getFormattedStringFromDays(183)返回类似于6个月3天的值,假设该年包含365天和30天,答案如下所示。否则应该有更多的输入参数 function getFormatedStringFromDays(numberOfDays) { var years = Math.floor(numberOfDa

嗨,我已经找了一段时间了,我似乎找不到这个问题的答案

我必须用javascript编写一个函数,在参数中花费数天的时间,然后将其转换为更容易理解的字符串

例:


因此,
getFormattedStringFromDays(183)
返回类似于
6个月3天

的值,假设该年包含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; 
}
这不是最优雅的解决方案,但它应该可以工作

纯js:

函数GetFormattedStringFromDays(天){ 天数=+天; 如果(数字isInteger(+天)){ var月数=数学下限(天/30);
var mon_text=months您需要我们提供什么样的帮助?嘿@Sergey Mell谢谢您的快速回答。我尝试了代码,但控制台中有一个错误,说h没有定义。@Helpha您确定您已经检查了最后一个版本吗?我已经编辑了几次。最后一个版本有效-我已经检查了这个确定,检查了最后一个版本,然后它确实工作得很好!Thanks@Helpha酷。我还为数字添加了一个验证,以防输入像
abc
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; 
}