`
songofhawk
  • 浏览: 26514 次
  • 来自: ...
社区版块
存档分类
最新评论

Date对象扩展

阅读更多

近期做了一个POC,需要在浏览器端做一些日期的处理工作,除去其中跟公司产品相关的部分,其它的代码还是比较通用的,主要有两个功能:

  1. 根据一个Date对象获取相对应的特殊时间点,比如一天、一个月或者一年的起止时间;
  2. 在一个Date对象上加减相应的时间值
js 代码
  1. /**  
  2.  * This file is a Date extension which can handle specified moments  
  3.  *   
  4. /**  
  5.  * set the Date object to a specific local moment  
  6.  * @param {enum} iMoment the specific moment, can reference those extened properties of Date.  
  7.  */  
  8. Date.prototype.setToLocalMoment=function(iMoment)   
  9. {   
  10.     switch (iMoment) {   
  11.         case Date.MOMENT_DATE_START:   
  12.             this.setHours(0,0,0,0);   
  13.             break;   
  14.         case Date.MOMENT_DATE_END:   
  15.             this.setHours(23,59,59,999);   
  16.             break;   
  17.         case Date.MOMENT_MONTH_START:   
  18.             this.setHours(0,0,0,0);   
  19.             this.setDate(1);   
  20.             break;   
  21.         case Date.MOMENT_MONTH_END:   
  22.             this.setHours(23,59,59,999);   
  23.             //can not get the last day of a month directly,   
  24.             //so set to the first day in next month, and minus one day.   
  25.             //numDate is start from 1, so 0 means the last day before 1st    
  26.             this.setMonth(this.getMonth()+1, 0);   
  27.             break;   
  28.         case Date.MOMENT_YEAR_START:   
  29.             this.setHours(0,0,0,0);   
  30.             //numMonth is start from 0, to 11, but numDate is from 1 to 31, weird    
  31.             this.setMonth(0, 1);   
  32.             break;   
  33.         case Date.MOMENT_YEAR_END:   
  34.             this.setHours(23,59,59,999);   
  35.             this.setMonth(11, 31);   
  36.             break;   
  37.         default:   
  38.     }   
  39. }   
  40.   
  41. /**  
  42.  * plus the specific values to this Date object  
  43.  * All parameters are optional, if one of them is positive, it's plused, otherwise, it's minused.   
  44.  * @param {int} iYear  
  45.  * @param {int} iMonth  
  46.  * @param {int} iDate  
  47.  * @param {int} iHours  
  48.  * @param {int} iMinutes  
  49.  * @param {int} iSeconds  
  50.  * @param {int} iMilliseconds  
  51.  */  
  52. Date.prototype.plus=function(iYear,iMonth,iDate,iHours,iMinutes,iSeconds,iMs)   
  53. {   
  54.     var ilYear=this.getFullYear(); ilYear+=iYear?iYear:0;   
  55.     var ilMonth=this.getMonth(); ilMonth+=iMonth?iMonth:0;   
  56.     var ilDate=this.getDate(); ilDate+=iDate?iDate:0;   
  57.     var ilHours=this.getHours(); ilHours+=iHours?iHours:0;   
  58.     var ilMinutes=this.getMinutes(); ilMinutes+=iMinutes?iMinutes:0;   
  59.     var ilSeconds=this.getSeconds(); ilSeconds+=iSeconds?iSeconds:0;   
  60.     var ilMs=this.getMilliseconds(); ilMs+=iMs?iMs:0;   
  61.     var date=new Date();   
  62.     date.setFullYear(ilYear, ilMonth, ilDate);   
  63.     date.setHours(ilHours,ilMinutes, ilSeconds,ilMs);   
  64.     return date;   
  65. }   
  66. Date.prototype.minus=function(iYear,iMonth,iDate,iHours,iMinutes,iSeconds,iMs)   
  67. {   
  68.     return this.plus(-iYear,-iMonth,-iDate,-iHours,-iMinutes,-iSeconds,-iMs);   
  69. }   
  70. /**  
  71.  * extened properties of Date: to define a set of special moment   
  72.  */  
  73. Date.MOMENT_DATE_START=100;   
  74. Date.MOMENT_DATE_END=101;   
  75. Date.MOMENT_MONTH_START=110;   
  76. Date.MOMENT_MONTH_END=111;   
  77. Date.MOMENT_YEAR_START=120;   
  78. Date.MOMENT_YEAR_END=121;   
  79.   
分享到:
评论

相关推荐

    Javascript 日期对象Date扩展

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

    关于js的Date对象的有用扩展

    在“关于js的Date对象的有用扩展”中,我们可以看到一些额外的功能或方法,可能是对原生Date对象的扩展,以满足更复杂的日期处理需求。 在`date.js`文件中,很可能包含了一些自定义函数或原型扩展,这些扩展可能...

    Javascript 日期对象Date扩展方法

    在标题和描述中提到的“Date对象扩展”是指通过原型链对Date对象进行扩展,添加自定义方法以满足更复杂的日期处理需求。下面我们将详细探讨这些扩展方法及其应用。 1. **日期格式化**: 通过`Format`方法,我们...

    带农历的js日期源码

    2. **Date对象扩展**:为了方便使用,可以扩展JavaScript的Date对象,添加新的方法如`toLunar()`用于获取农历日期,`fromLunar()`用于从农历日期创建Date对象。 3. **用户界面显示**:`index.html`可能是包含这个...

    jquery插件实时实时更新时间

    在上面的代码中,我们为Date对象扩展了一个 `format` 方法,以根据指定格式(如 'YYYY-MM-DD HH:mm:ss')来格式化日期。`setInterval` 每秒调用一次内部函数,获取当前时间并将其格式化,然后更新选中元素的文本内容...

    javascript转换日期字符串为Date日期对象的方法.docx

    - [扩展 JS `Date` 对象时间格式化功能的小例子](https://example.com) - [JavaScript `Date` 对象详解](https://example.com) - [详解 JavaScript 对 `Date` 对象的操作问题](https://example.com) - [JavaScript ...

    JS中获取Date对象实现实时钟表小demo

    JavaScript的Date对象提供了更多的方法和属性,如`getTimezoneOffset()`(获取本地时间与UTC时间的分钟差)、`toUTCString()`(转换为UTC字符串)等,可以根据需求进行扩展和定制。此外,现代JavaScript还引入了`...

    w3cshool之JavaScript对象_Date

    `prototype`属性用于扩展对象的功能。例如,下面的代码向`employee`对象添加了一个`salary`属性: ```javascript function employee(name, job, born) { this.name = name; this.job = job; this.born = born...

    Date对象的补充函数,包括类似Python中的strftime()

    总结来说,datetime.js-master是一个专注于日期和时间处理的JavaScript工具包,它扩展了Date对象的功能,使其能像Python的strftime()那样灵活地格式化日期。这对于进行web应用开发,特别是需要大量处理日期展示的...

    javascript中Date对象应用之简易日历实现_.docx

    ### JavaScript中Date对象应用之简易日历实现 #### 前言 简易日历作为JavaScript中Date对象的一个典型应用场景,在日常开发中具有重要的实用价值。本文将详细介绍如何使用JavaScript中的Date对象来实现一个简易的...

    extended-date:JavaScript中“ Date”对象的扩展,以简化与日期相关的常用实现

    为了简化这些常见任务,开发者通常会扩展Date对象,添加自定义方法。"extended-date"项目正是这样一个解决方案,它为JavaScript的Date对象增加了更多的功能,使其在处理日期相关问题时更加灵活。 首先,让我们讨论...

    扩展JS Date对象时间格式化功能的小例子

    所以,就需要对Date对象进行扩展,使其具备更强大和灵活的时间格式化功能。 在本文中,我们讲解了如何扩展JavaScript的Date对象,以实现自定义的日期时间格式化功能。这个功能的实现主要是通过添加一个新的Date....

    js date

    DP_DateExtensions.js是一个为JavaScript的`Date`对象扩展了更多功能的库,它提供了方便的日期比较、日期间隔计算以及各种格式化选项。例如,你可以方便地检查日期是否在另一日期之前或之后,或者计算两个日期之间的...

    ASP.NET AJAX深入浅出系列课程(7):Microsoft AJAX Library对于JavaScript原生对象的扩展(上)

    在AJAX库中,你可以找到如parseDate和formatDate这样的函数,它们分别用于解析和格式化日期字符串,解决了JavaScript原生Date对象在这方面的不足。此外,还有新增的时间比较和操作方法,如add和subtract,方便开发者...

    joi-date:约会的Joi扩展名

    3. 验证日期字符串是否可解析为JavaScript的Date对象,防止因用户输入无效日期导致的错误。 在实际应用中,"joi-date"可以用于多种场景,例如: - 注册表单中,确保用户的出生日期是一个合理的过去日期。 - 预订...

    ASP.NET AJAX深入浅出系列课程(8):Microsoft AJAX Library对于JavaScript原生对象的扩展(下)

    2. **Date对象的扩展**:微软AJAX库扩展了Date对象,添加了处理日期和时间的新方法,如`addTime()`和`getTimeValue()`。这使得开发者能更方便地进行日期计算和格式化,适应复杂的日期时间操作需求。 3. **Function...

    Code-Craft-js_DateExtension:Date对象的扩展

    以下图书馆员通过添加必要的选项或操作变型来扩展Date对象的功能,以简化使用javascript处理这些对象的过程。 新的静态成员 DayOfWeek :星期几的枚举数。 IsLeapYear :标识一年是a年。 DaysInMonth :返回指定...

    extend-date:使用额外的功能扩展 Date 对象

    使用新功能扩展(原型)日期对象 - 目前只是 timeAgo 并添加和删除秒、小时等。 这是一个早期的 BETA 版本 一旦模块在实时系统上显示出它的价值和稳定性,它将被标记为版本 >= 1.0.0。 在那之前:随意玩弄它,从中...

    Juno-Myanmar-Date:Javascript Myanmar Date插件,扩展的Javascript本机日期对象

    此插件在Javascript本地Date对象上进行了扩展。 例子: var date= new Date('10-23-2015'); /* @ Date.mmFormat(format,ref) * ref will be eng=English (Default), uni= Unicode, zg=Zawgyi */ date.mmFormat('d/...

Global site tag (gtag.js) - Google Analytics