前言
日期和时间在Javascript
扩展js 4实现了一周(星期)(真实战斗)的日期选择控件。
为了
详细了解这篇文章的一些预备知识,我们可以
参考上面两个。
Javascript提供了
处理时间的日期对象,但是日期不能提供一个星期的
方法。
在Web方面以JS方式获得一定的时间是今年的最后几周,它可以根据一些算法实现。当然,jQuery的扩展
组件等,直接提供一些现成的包。
像Ext JS一样,有一种方法可以获得方法ext.date.getweekofyear提供一周(日)。
问题
有没有可能用js来完美地
解决一周的问题
在本系列的第一部分,据说Ext的DatePicker不见周需要扩展本身。
但它扩展时有一个问题。
Javascript
语言中的日期对象每星期日开始。
Ext JS的getweekofyear,如下ISO-8601,星期一开始。(其他方法不遵循这个标准,和Ext JS是混合不同的日期和时间表示的标准)。
ext.date.getweekofyear方法的返回值是一个数字1-53。
这样,就会有一些问题:
从星期日起,
显示显示的日期:(星期日,星期一,星期二,星期六)
但是在选定的时间里,这一周的时间又开始了,导致了星期日:
1、每个星期日的星期
都是1个小时(例如,2013 08 / 18,星期日应该是34周,但是这样,它可以被视为上周末,33周)。
复制代码代码如下所示:
日期=新日期(2013 08 18);
VAR周= ext.date.getweekofyear(日期);
警报();
2。
默认情况下,Ext Js日期控件将显示为42天,以这种方式,将在两年的交互中出现问题。
一年中的53个星期是
什么时候这是下一年的第一个星期。
解决方案
结合JS日期对象和Ext JS获得本周弦Ext. Date。
1。星期日是一天中的第一天。
2。周的年数从(1-52),如果超过52周,到下一年的第一周。例如,2013 / 12 / 29是53周的2013,到2014的第一周。
三.返回的周如w1334格式
复制代码代码如下所示:
*
*返回w1334()2013 / 08 / 20
* 1。如果星期日=星期=星期+ 1
* getweekofyear(EXT使用ISO-8601,周星期一开始)
* JS Date(星期日开始)
* 2。如果星期> > 52 = >年= 1,星期= 52;
* 3。如果月= 11(12个月)和周年= 1年+;
* /
功能getweekstrofdate(日期)
{
无功weekstr = null;
如果(日期)!= null)
{
weekstr =W;
无功dateyear = date.getfullyear();
无功dateweek = ext.date.getweekofyear(日期);
无功firstdayofmonth = ext.date.getfirstdayofmonth(日期);
VaR天= date.getdate();
VaR月= date.getmonth();
/ /周日0-6
var周日= date.getday();
如果(
工作日= 0)
{
dateweek + +;
}
年份+ 1周/周> 52 =
如果(月= 11)
{
如果(dateweek > 52)
{
dateyear = 1;
dateweek = 52;
} else if(dateweek<2){
dateyear = 1;
}
}
无功yearstr = dateyear.tostring();
yearstr = yearstr.substring(2,4);
无功dateweekstr = dateweek.tostring();
如果(dateweekstr。长度<2)
{
dateweekstr =0+ dateweekstr;
}
weekstr = yearstr;
weekstr = dateweekstr;
}
返回weekstr;
}