gpt4 book ai didi

javascript - 如何将十进制年份值转换为 Javascript 中的日期?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:51 26 4
gpt4 key购买 nike

好的,这基本上是 How can I convert a decimal year value into a Date in Ruby? 的 Javascript 版本而不是 完全 Javascript function to convert decimal years value into years, months and days 的副本

输入:

2015.0596924

期望的输出:

January 22, 2015

我已经解决了(见下文),但我希望(就像这个问题的 Ruby 版本一样)有更好的方法。

最佳答案

另一种解决方案是:

  1. 为给定年份创建日期(整数部分)
  2. 从提醒(小数部分)计算天数并转换为毫秒
  3. 将毫秒添加到 (1)

在脚本中:

function leapYear(year) {
return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
};

function convertDecimalDate(decimalDate) {
var year = parseInt(decimalDate);
var reminder = decimalDate - year;
var daysPerYear = leapYear(year) ? 366 : 365;
var miliseconds = reminder * daysPerYear * 24 * 60 * 60 * 1000;
var yearDate = new Date(year, 0, 1);
return new Date(yearDate.getTime() + miliseconds);
}

var date = convertDecimalDate(2015.0596924);
console.log(date);

你可以在 this Fiddle 上玩它.

关于javascript - 如何将十进制年份值转换为 Javascript 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29400171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com