[英]Get Years Months and days from days
我似乎没有得到它。
我有天数,比如762。
将是2年(每365天730天),1个月(762-730)和2天(假设每个月持续30天)
我需要在JS上做到这一点。 这就是我提出的:
days = 762;
ymd = {
d: days % 30,
m: Math.floor((days - (days % 30)) / 30),
y: ((days - (days % 365)) / 365),
}
if (ymd.m > 12){
ymd.y += Math.floor(ymd.m / 12);
ymd.m = ymd.m % 12;
}
console.log(ymd);
好吧它不工作。
使用您对年/月长度的假设;
function dToYMD(i) {
var y, m ,d;
y = (i / 365) | 0;
i = i - y * 365;
m = (i / 30) | 0;
i = i - m * 30;
d = i | 0;
return [y, m, d];
}
dToYMD(762); // [2 /* years */, 1 /* month */, 2 /* days */]
我以为内置了一些东西。我的意思是使用Date obj
这不会使用您对长度的假设,但您可以根据unix时期设置日期,然后从年份开始减去1970
年。
function dToYMD(i) {
var d = new Date(i * 864e5);
return [d.getUTCFullYear() - 1970, d.getUTCMonth(), d.getUTCDate() - 1];
}
dToYMD(762); // [2 /* years */, 1 /* month */, 1 /* days */]
注意这一次,天数是不同的,因为1月有31
天。
模数( %
)返回除法后的余数。 您应该使用常规分区然后对值进行拼接。
像这样:
var numOfDays = 762;
var years = Math.floor(numOfDays / 365),
months = Math.floor((numOfDays-(years*365)) / 30),
days = ((numOfDays-(years*365))-months*30);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.