javascript - 从天数中获取年月数和天数

标签 javascript

我好像没听懂。我有天数,比如说 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 */]

I thought there was something built in. i meant using 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 天。

关于javascript - 从天数中获取年月数和天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18474706/

相关文章:

javascript - 如何在 Angular Material 动画之后执行代码

javascript - 如何在 Node.js 的目录中找到文件?

javascript - 在模态弹出窗口中设置 iFrame 的透明度

javascript - Node.js readline.on ('line' , fn()) 看不到换行符

javascript - Looper.js 与 codeigniter 中的控件

javascript - Jquery mobile获取listview选择的项目并将其文本发送到另一个页面

Javascript - 如何在带有回调的 for 循环中使用迭代器

javascript - 二维缩放到 webgl 中的点

javascript - 在 Postman 预请求脚本中获取 Azure REST 访问 token

javascript - hasOwnProperty 不是 Node.js 中的函数?