原文鏈接: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' );
總結
就是用時間戳進行換算,然后通過內置函數獲取對應字段進行拼接,,這里沒有帶時分秒,有興趣的可以加個可選參數把時分秒帶上。。因為我這里不需要用到,所以我就沒加進去了。。
結果集為數組,但不僅限于數組,也可以改成對象。。看你們喜歡啦