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