Ext JS框架中日期函数的用法及日期选择控件的实现_.docx

上传人:PIYPING 文档编号:11645777 上传时间:2021-08-27 格式:DOCX 页数:13 大小:15.22KB
返回 下载 相关 举报
Ext JS框架中日期函数的用法及日期选择控件的实现_.docx_第1页
第1页 / 共13页
Ext JS框架中日期函数的用法及日期选择控件的实现_.docx_第2页
第2页 / 共13页
Ext JS框架中日期函数的用法及日期选择控件的实现_.docx_第3页
第3页 / 共13页
Ext JS框架中日期函数的用法及日期选择控件的实现_.docx_第4页
第4页 / 共13页
Ext JS框架中日期函数的用法及日期选择控件的实现_.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Ext JS框架中日期函数的用法及日期选择控件的实现_.docx》由会员分享,可在线阅读,更多相关《Ext JS框架中日期函数的用法及日期选择控件的实现_.docx(13页珍藏版)》请在三一文库上搜索。

1、Ext JS框架中日期函数的用法及日期选择控件的实现_ Ext.Date是一个单例,封装了一系列日期操作函数,扩展JavaScript Date的功能,下面列出一些常用的功能。 基本函数: Ext.Date.add(date, interval, value) 给date增加或削减时间,这个函数不转变原有Date对象的值,而是返回一个新的Date对象。 Ext.Date.between(date, start, end) 推断date是否在start和end之间。 Ext.Date.clearTime(date, clone) 把date的时间设置成00小时00分00秒000毫秒。 Ext.D

2、ate.clone(date) 克隆date的一个副本。 Ext.Date.format(date, format)把日期格式化,返回格式化后的字符串。 Ext.Date.getDayOfYear(date)猎取date是年中的第几天。 Ext.Date.getDaysInMonth(date)猎取date是月中的第几天。 Ext.Date.getFirstDateOfMonth(date)猎取date所在月份的第一天。 Ext.Date.getFirstDayOfMonth(date)猎取date所在月份第一天的星期。 Ext.Date.getLastDateOfMonth(date)猎取d

3、ate所在月份的最终一天。 Ext.Date.getLastDayOfMonth(date)猎取date所在月份最终一天的星期。 Ext.Date.getWeekOfYear(date) 猎取date所在年中的第几个星期。 Ext.Date.isLeapYear(date)date所在年份是否闰年。 Ext.Date.now() 返回当前时间到1970年1月1日的毫秒数。在chrome、ie9和ie10中已经有Date.now()实现相同的功能。 Ext.Date.parse(input, format, strict)依据输入的字符串创建日期,Date.parse()有类似的功能。 下面零碎

4、地举几个例子综合来看一下: / Ext.Date.add(date, interval, value) 给date增加或削减时间,这个函数不转变原有Date对象的值,而是返回一个新的Date对象。 / param Date date 原日期对象。 / param String interval value的单位,可以选Ext.Date.DAY、Ext.Date.HOUR、Ext.Date.MINUTE、Ext.Date.MONTH、 / Ext.Date.SECOND、Ext.Date.YEAR、Ext.Date.MILLI。 / param number value 日期对象需要增加的值。

5、/ return Date 返回增加值后的Date对象。 / Example var date = Ext.Date.add(new Date(10/29/2021), Ext.Date.DAY, 5); /增加5天 console.log(date); /返回结果 Fri Nov 03 2021 00:00:00 GMT+0800 (中国标准时间) var date = Ext.Date.add(new Date(10/29/2021), Ext.Date.DAY, -5); /削减5天,假如值是负数,则削减。 console.log(date); /返回结果 Tue Oct 24 2021

6、 00:00:00 GMT+0800 (中国标准时间) var date = Ext.Date.add(new Date(10/29/2021), Ext.Date.YEAR, 2); /增加2年 console.log(date); /返回结果 Wed Oct 29 2021 00:00:00 GMT+0800 (中国标准时间) / Ext.Date.between(date, start, end) 推断date是否在start和end之间。 / param Date date 要推断的日期。 / param Date start / param Date end / return Boo

7、lean 假如date在start和end之间返回true,否则返回false。 / Example var date = new Date(10/29/2021); var start = new Date(10/5/2021); var end = new Date(11/15/2021); Ext.Date.between(date, start, end); /返回true / Ext.Date.clearTime(date, clone) 把date的时间设置成00小时00分00秒000毫秒。 / param Date date / param Bollean clone 可选参数。

8、假如为true则返回date的一个副本,假如为false则返回date本身,默认为false。 / return Date 返回设置后的日期。 / Example var date = new Date(10/30/2021 14:30:00); Ext.Date.clearTime(date); /返回 Tue Oct 30 2021 00:00:00 GMT+0800 (中国标准时间) / Ext.Date.clone(date) 克隆date的一个副本。 / param Date date / return Date 返回克隆后的Date。 / Example var orig = ne

9、w Date(10/30/2021); var copy = Ext.Date.clone(orig); /克隆一个值 / Ext.Date.format(date, format) 把日期格式化,返回格式化后的字符串。 / param Date date 日期。 / param String format 日期格式,Y-年,m-月,d-日,H-24小时,i-分钟,s-秒 / return String 返回格式化后的字符串。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.format(date, Y-m-d H:i:

10、s); / 2021-10-20 14:30:00 Ext.Date.format(date, Y年m月d日 H:i:s); / 2021年10月20日 14:30:00 / Ext.Date.getDayOfYear(date) 猎取date是年中的第几天 / param Date date 日期。 / return Number 返回天数,取值范围0364,假如是闰年则有365。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.getDayOfYear(date); /返回 293 / Ext.Date.getDay

11、sInMonth(date) 猎取date是月中的第几天 / param Date date 日期。 / return Number 返回天数。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.getDayOfYear(date); /返回 31 / Ext.Date.getFirstDateOfMonth(date) 猎取date所在月份的第一天 / param Date date 日期。 / return Date 返回所在月份的第一天。 / Example var date = new Date(10/20/202

12、1 14:30:00); Ext.Date.getFirstDateOfMonth(date); /返回 Mon Oct 01 2021 00:00:00 GMT+0800 (中国标准时间) / Ext.Date.getFirstDayOfMonth(date) 猎取date所在月份第一天的星期 / param Date date 日期。 / return Number 返回所在月份第一天的星期,取值范围06。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.getFirstDayOfMonth(date); /返回 1

13、,表示星期一 / Ext.Date.getLastDateOfMonth(date) 猎取date所在月份的最终一天 / param Date date 日期。 / return Date 返回所在月份的最终一天。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.getLastDateOfMonth(date); /返回 Wed Oct 31 2021 00:00:00 GMT+0800 (中国标准时间) / Ext.Date.getLastDayOfMonth(date) 猎取date所在月份最终一天的星期 / par

14、am Date date 日期。 / return Number 返回所在月份最终一天的星期,取值范围06。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.getLastDayOfMonth(date); /返回 3,表示星期三 / Ext.Date.getWeekOfYear(date) 猎取date所在年中的第几个星期 / param Date date 日期。 / return Number 返回所在年中的第几个星期,取值范围153。 / Example var date = new Date(10/20/202

15、1 14:30:00); Ext.Date.getWeekOfYear(date); /返回 42 / Ext.Date.isLeapYear(date) date所在年份是否闰年 / param Date date 日期。 / return Boolean true表示闰年,false表示平年。 / Example var date = new Date(10/20/2021 14:30:00); Ext.Date.isLeapYear(date); /返回 true / Ext.Date.now() 返回当前时间到1970年1月1日的毫秒数。 / 在chrome、ie9和ie10中已经有D

16、ate.now()实现相同的功能。 / return Number 返回毫秒数。 / Example var timestamp = Ext.Date.now(); /1351666679575 var date = new Date(timestamp); /Wed Oct 31 2021 14:57:59 GMT+0800 (中国标准时间) / Ext.Date.parse(input, format, strict) 依据输入的字符串创建日期,Date.parse()有类似的功能。 / param String input 日期字符串。 / param String format 日期格

17、式。 / param Boolean strict 验证input字符串的有效性,默认是false。 / param Date 返回创建的日期。 / Example var input = 2021年10月31日 14:30:00; var format = Y年m月d日 H:i:s; var date = Ext.Date.parse(input, format, true); /Wed Oct 31 2021 14:30:00 GMT+0800 (中国标准时间) 实例:实现带week(星期)的日期选择控件 1.问题: 是否用法了Ext JS 就可以完善的解决 星期的问题呢? 在本系列的第一

18、篇就有说到, Ext 的datepicker 并不能看到星期, 需要自己去扩展。 但是, 扩展的时候就有一个问题了: Javascript 语言的Date对象每周是从星期天开头。 而Ext JS的getWeekOfYear这个方法却又是遵循 ISO-8601, 每周是从星期一开头的。(其他的方法又有不是遵循此标准的, Ext JS混合了不同的日期进度表示标准)。 Ext.Date.getWeekOfYear 这个方法的返回值是 1- 53 之间的数。 这样的话, 就会消失一些问题: Ext js 的日期显示控件的显示是从星期天开头: (S M T W T F S (星期天 星期一 星期二 .

19、星期六)) 但是, 通过选中的时间猎取星期时却又是从星期天开头。导致: 每个星期天的星期会小1 (比如2021/08/18 , 星期天, 应当是34周,但是通过这个方法却是算成上一周的结尾 , 33 周) date = new Date(2021/08/18); var week = Ext.Date.getWeekOfYear(date); alert(week=+week); Ext Js 日期控件默认显示了 42天, 这样的话,在两个年交互的地方就会消失问题 是当年显示 53 周呢? 还是下一年的第一周。 2.解决方案: 结合js 的Date 对象和 Ext js的Ext.Date, 实

20、现猎取星期字串。 每周以星期天为第一天 每年的周数从(1-52), 假如超过52 周,算到下一年的第一周。 比如2021/12/29 为 2021年的53周, 算到 2021年的第一周 返回 “W1334” 这样的周的格式 /* * return as W1334()2021/08/20 * 1. if sunday= week = week+1 * getWeekOfYear(Ext use ISO-8601,week begin monday) * js Date(week begin sunday) * 2. if week 52= year = year +1; week = week

21、 - 52; * 3. if month =11(12 month) and week 2 = year = year +1; */ function getWeekStrOfDate(date) var weekStr = null; if(date!=null) weekStr = W; var dateYear = date.getFullYear(); var dateWeek = Ext.Date.getWeekOfYear(date); var firstDayOfMonth = Ext.Date.getFirstDayOfMonth(date); var day = date.g

22、etDate(); var month = date.getMonth(); /weekday 0-6 var weekday = date.getDay(); if(weekday=0) dateWeek+; / week52 = year +1 if(month=11) if(dateWeek52) dateYear += 1; dateWeek -= 52; else if(dateWeek2) dateYear += 1; var yearStr = dateYear.toString(); yearStr = yearStr.substring(2,4); var dateWeekStr = dateWeek.toString(); if(dateWeekStr.length2) dateWeekStr = 0 + dateWeekStr; weekStr += yearStr; weekStr += dateWeekStr; return weekStr; .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1