原文链接:http://blog.csdn.net/crper/article/details/55194334
---------------------------------------------------
前言
今天有个接口字段需求,要写一个今天及前几天的日期传过去;
在网上找了下都木有什么比较好的方案;就自己写了一个。
因为技术栈就是NG2+TS2+WEBPACK,这里的代码需要一定的TS2及ES6的基础
代码
getRangeDate( range: number, type?: string ) {const formatDate = ( time: any ) => {const Dates = new Date( time );const year: number = Dates.getFullYear();const month: any = ( Dates.getMonth() + 1 ) < 10 ? '0' + ( Dates.getMonth() + 1 ) : ( Dates.getMonth() + 1 );const day: any = Dates.getDate() < 10 ? '0' + Dates.getDate() : Dates.getDate();return year + '-' + month + '-' + day;};const now = formatDate( new Date().getTime() ); const resultArr: Array<any> = [];let changeDate: string;if ( range ) {if ( type ) {if ( type === 'one' ) {changeDate = formatDate( new Date().getTime() + ( 1000 * 3600 * 24 * range ) );console.log( changeDate );}if ( type === 'more' ) {if ( range < 0 ) {for ( let i = Math.abs( range ); i >= 0; i-- ) {resultArr.push( formatDate( new Date().getTime() + ( -1000 * 3600 * 24 * i ) ) );console.log( resultArr );}} else {for ( let i = 1; i <= range; i++ ) {resultArr.push( formatDate( new Date().getTime() + ( 1000 * 3600 * 24 * i ) ) );console.log( resultArr );}}}} else {changeDate = formatDate( new Date().getTime() + ( 1000 * 3600 * 24 * range ) );console.log( changeDate );}}}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
调用及结果
- range参数支持正负数,里面也加了判断;
- type【为可选参数】有两种,一个是字符串one,一个是more;前者返回一个指定的日期;后者返回一个排序好的范围
getRangeDate( -6 );getRangeDate( -6, 'one' );
getRangeDate( -6, 'more' );
总结
就是用时间戳进行换算,然后通过内置函数获取对应字段进行拼接,,这里没有带时分秒,有兴趣的可以加个可选参数把时分秒带上。。因为我这里不需要用到,所以我就没加进去了。。
结果集为数组,但不仅限于数组,也可以改成对象。。看你们喜欢啦