`
bnmnba
  • 浏览: 295185 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JavaScript Date对象获取ISO周数和年份

 
阅读更多

JavaScript Date对象扩展,支持获取ISO周数和其年份。

 

/* 
date: 指定时间
mondayIsFirstDay: true周一是周的第一天
返回指定时间和其周最后一天的差值天数
*/
Date.prototype.getDayAddForWeekEnd = function(date, mondayIsFirstDay) {
    var  day = date.getDay();//默认周日是第一天
    var dayAdd = 6-day;
    if(mondayIsFirstDay){
        // 周一是第一天
        dayAdd = (7-day)%7;
    }
    return dayAdd;
}

/* 得到ISO周:一年中的第多少个星期
	mondayIsFirstDay: true周一是周的第一天
	返回数组:[年份,周数]
*/
Date.prototype.getYearAndWeek = function(mondayIsFirstDay) {
    var date = new Date(this.getTime());
    date.setHours(0, 0, 0, 0);
    var dayAdd = this.getDayAddForWeekEnd(date, mondayIsFirstDay);
    // 当前时间的周的最后一天
    date.setDate(date.getDate()+dayAdd);
    // January 4 is always in week 1.
    var week1 = new Date(date.getFullYear(), 0, 4);
    // 今年第一周的最后一天
    var wdayAdd = this.getDayAddForWeekEnd(week1, mondayIsFirstDay)
    week1.setDate(week1.getDate()+wdayAdd);
    if(date.getTime()<week1.getTime()){
        week1 = new Date(date.getFullYear()-1, 0, 4);
        // 去年第一周的最后一天
        var wdayAdd = this.getDayAddForWeekEnd(week1, mondayIsFirstDay)
        week1.setDate(week1.getDate()+wdayAdd);
    }
    // 相差多个个7天:1000*60*60*24*7=604800000
    var wnum = (date.getTime() - week1.getTime())/604800000
    return [week1.getFullYear(),Math.floor(1 + wnum)];
}

/* 得到ISO周:一年中的第多少个星期
	mondayIsFirstDay: true周一是周的第一天
*/
Date.prototype.getWeek = function(mondayIsFirstDay) {
    var yearAndWeek = this.getYearAndWeek(mondayIsFirstDay);
    return yearAndWeek[1];
}
/* 得到ISO周数的年份
mondayIsFirstDay: true周一是周的第一天
*/
Date.prototype.getWeekYear = function(mondayIsFirstDay) {
    var yearAndWeek = this.getYearAndWeek(mondayIsFirstDay);
    return yearAndWeek[0];
}

 

 

分享到:
评论

相关推荐

    Sql查询获取周数Sql获取从星期一开始的周数

    因为线上查找过大部分的获取将星期一作为一周开始的周数的思路在特定日期都有一些问题,因项目需要有此功能,经过项目验证,计算准确无误(未发现有任何日期计算错语)。例如: select [dbo].[get_weekNumber]('2021...

    Javascript 日期对象Date扩展

    Date对象扩展,包括常用中文日期格式解析、加减操作、日期差、周操作和季操作。具体扩展的方法如下: parseCHS--静态方法。解析常用的中文日期并返回日期对象。 add--日期加减操作。[注:此函数在上传时还存在...

    oracle sql 根据年份、周数取日期

    在Oracle SQL中,根据年份和周数获取特定日期是一个常见的需求,特别是在处理时间序列数据或进行周期性分析时。本文将深入探讨如何利用Oracle SQL的功能来实现这一目标,包括理解Oracle中的日期函数、如何计算特定...

    周数获取.txt

    一共有两个方法,获取每个月有几周和获取当前登录时间是属于该月的第几周,测试没问题,已经用到实际项目中运行,文档中有联系方式,望跟各位大神交流

    Javascript实现通过选择周数显示开始日和结束日的实现代码

    JavaScript的Date对象允许我们创建日期和时间对象,并提供了丰富的方法来操作这些日期和时间对象。 2. **获取日期所对应的星期**: 通过Date对象的`getDay()`方法可以获取一个表示星期几的整数(0代表星期日,1...

    js获取指定日期周数以及星期几的小例子

    本文档提供了几个JavaScript函数的小例子,主要功能是根据用户输入的年份和周数,计算出这一周的具体日期范围。这里需要理解几个关键点,包括如何通过日期对象获取年月日信息,以及如何根据日期计算周数和对应的星期...

    自动计算周数

    在IT行业中,自动计算周数是一项常见的需求,特别是在时间管理和数据分析等领域。自动计算周数通常是基于日期进行的,目的是为了方便地追踪和分析特定时间段的数据。以下是对这一主题的详细阐述: 首先,我们要理解...

    有关日期与周数的相互转换

    这可以通过计算两个日期的差值(可以使用编程语言中的日期函数,如Python的`dateutil.relativedelta`或JavaScript的`Date`对象)得到。 - 接下来,将这个天数差除以7得到商S(周数)和余数X。商S代表完整的周数,...

    Oracle数据库的周数计算

    本文将详细介绍两种常用的周数计算方法:“ww”格式和“IW”格式,并提供具体的实现步骤与示例。 #### 一、WW格式的周数计算 在“WW”格式中,每年的1月1日被视为第一周的开始,而该周的最后一天则是1月1日后的第...

    matlab开发-Weeknumber

    在MATLAB中,我们可以使用内置函数 `weeknum` 来获取日期的ISO周数。下面是对 `weeknum` 函数的详细解释: `weeknum(date)` 函数接收一个日期向量 `date` 作为参数,返回该日期所在的ISO周数。日期可以是MATLAB日期...

    Javascript 日期对象Date扩展方法

    JavaScript中的Date对象是用于处理日期和时间的核心内置对象。它提供了丰富的功能,允许开发者进行日期的创建、格式化、比较和操作。在标题和描述中提到的“Date对象扩展”是指通过原型链对Date对象进行扩展,添加...

    JS获取当天是本年的第几周和本周的起始日期

    date.getMonth() + 1, date.getDate())`和`getWeekNumOfYear(date.getFullYear(), date.getMonth() + 1, date.getDate())`,传入当前日期对象`date`的年、月、日属性,即可获取当前日期是本年的第几周以及本周的...

    vecka:获取当前周数

    获取当前周数。 安装 npm install vecka 例子 var vecka = require ( 'vecka' ) ; console . log ( vecka . nu ( ) ) ; // 44 命令行界面 npm install -g vecka $ vecka 44 应用程序接口 现在() 以数字形式...

    python根据时间获取周数代码实例

    对于给定的日期字符串,例如'20190825',可以使用`strptime`函数解析成`datetime`对象,再使用`strftime('%W')`获取周数。 示例代码: ```python date_str = '20190825' date_obj = datetime.datetime....

    c#获取当前年的周数及当前月的天数示例代码

    获取当前年的周数 代码如下: ///  /// 获得今年有几周 ///  /// ”year”&gt; /// &lt;returns&gt;&lt;/returns&gt; public int GetWeekOfYear(int year) { DateTime the_Date = new DateTime(year,1,1);//本年的第一天 ...

    JS获取月的第几周和年的第几周实例代码

    综上所述,通过JavaScript中的Date对象和一些数学计算,我们可以有效地获取日期所在的月份周数和年份周数。这些功能对于开发时间相关的功能,如日历应用、时间跟踪等,是非常有用的。需要注意的是,不同地区可能对周...

    怀孕天数周数预产期计算器

    VB6是微软公司推出的一种面向对象的可视化编程环境,以其直观的拖放界面和丰富的控件库深受程序员喜爱。在这个计算器的开发过程中,开发者利用VB6的事件驱动编程模型,实现了用户交互逻辑。当用户输入怀孕的开始日期...

    【Java精品】Java中Date各种相关用法.doc

    - 计算一年中的第几星期是几号:设置Calendar的年份、周数和星期,然后获取`getTime()`得到对应的日期。 5. add()和roll()的用法 - `add()`方法:用于增加或减少日期字段的值,会跨月或跨年。例如,`cal.add...

    JavaScript中猎取时间的函数集_.docx

    本文将深入探讨JavaScript内建的Date对象以及一些扩展的日期时间脚本库方法,帮助开发者更有效地管理和展示时间。 首先,JavaScript的Date对象是处理时间的核心。创建一个新的Date对象可以获取当前系统时间,如`var...

Global site tag (gtag.js) - Google Analytics