javascript - javascript 中有没有一种方法可以使用年份和 ISO 周数创建日期对象?

标签 javascript date week-number

我正在尝试创建一个谷歌注释时间轴即。为此,我需要输入事件的日期。我掌握的唯一信息是事件的年份和 ISO 周数。 Javascript 中是否有一种方法可以仅使用年份和周数来创建 Date 对象?我用谷歌搜索但没有找到任何可行的解决方案。

感谢您的帮助!

最佳答案

ISO 周从星期一开始

如果 1 月 1 日是星期一、星期二、星期三或星期四,则它在第 01 周。 如果 1 月 1 日是周五、周六或周日,则为上一年的第 52 或 53 周

Date.weekofYear= function(s){
    var yw= s.split(/\D+0?/),
    weeks= 7*yw[1]-7,
    date1= new Date(yw[0], 0, 1),
    day1= date1.getDay(),
    incr= (day1> 0 && day1<5)? -1: 1;
    if(yw[2]) weeks+= (+yw[2])-1;// optional day in week

    while(date1.getDay()!= 1){
        date1.setDate(date1.getDate()+incr);
    }
    date1.setDate(date1.getDate()+weeks);
    return date1;
}

Date.weekofYear('2010-20').toLocaleDateString()
// (use UTC methods to start the weeks on Greenwich instead of local time)
/*  returned value: (String)
Monday, May 17, 2010
*/

关于javascript - javascript 中有没有一种方法可以使用年份和 ISO 周数创建日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815514/

相关文章:

javascript - 在javascript中的单词前后 chop 字符串

javascript - 显示HH :MM in input type time

ruby-on-rails - Ruby On Rails,周数不正确 (-1)

gnuplot:如何获得正确的周数?

PHP - 当周从星期一以外的一天开始时,获取给定周数的第一天

javascript - 如何从选择框中获取选定的值,并在 HTML 链接中使用它?

javascript - Firebase:从所有子节点中删除事件(书签系统)

date - 日期格式 dd-MMM-yyyy 是否有标准名称?例如 2013 年 10 月 1 日

sql-server - 在 Transact 中从字符串安全转换为日期

java - 为什么JDBC在保存日期时会将时间调整为默认时区?