【js】項目中有關時間的問題

1、時間戳javascript

簡單講,unix時間戳就是從1970-01-01開始所通過的秒數,何時獲取時間戳,就是到那個時間點所經歷的秒數。html

2、JavaScript獲取時間戳java

根據時間戳的定義,可使用javascript中的幾個方法來獲取系統當前的時間戳:測試

一、getTime()spa

w3c school的解釋以下:unix

根據上面的定義,咱們能夠獲取系統當前的時間戳:code

var timeStamp1 = new Date().getTime();
console.info(timeStamp1);
//輸出:1556526945555
 
 

 

二、parse()htm

根據上面的解釋,parse方法返回的是指定日期和時間到1970年1月1日的毫秒數,因此只要將日期指定爲系統當前時間,就能獲取系統當前的時間戳。對象

//例子1:
var timeStamp2 = Date.parse(new Date());
console.log(timeStamp2);
//輸出:1556526945000

 

三、valueOf()blog

  

該方法返回的是Date對象的原始值,且和getTime返回相同的值,因此只要Date對象爲系統當前時間,就能獲取系統當前的時間戳

var timeStamp5 = (new Date()).valueOf();
console.info(timeStamp5); 
//輸出:1556527752836

 

 以上是獲取系統當前時間的時間戳,若是要獲取指定時間的時間戳,只須要設置指定日期,而後用對應的日期對象進行操做便可,再也不贅述。

從上面的結論能夠看出,經過parse方法獲取的時間戳後三位都是0,若是用更多的數據測試,都會發現該方法返回的時間戳沒有其餘兩種方法精確,

由於其後三位始終是0.

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>時間戳問題</title>
        <script>
            /***********************************************獲取當前時間***********************************************/
            // 例子1:
            var timeStamp1 = (new Date()).getTime();
            console.log(timeStamp1);
            // 輸出1556529963911

            // 例子8
            var timeStamp8 = (new Date()).valueOf();
            console.log(timeStamp8);
            //輸出:1556529963914

            //例子9
            var timeStamp9 = +new Date();
            console.log(timeStamp9);
            //輸出:1556529963914

            //例子10
            var timeStamp10 = Date.now();
            console.log(timeStamp10); 
            //輸出:1556529963914

            // 
            console.log((new Date()).getTime() == +new Date());// 輸出:true
            
            console.log((new Date()).getTime() == Date.now());// 輸出:true
            
            console.log((new Date()).getTime() == (new Date()).valueOf());// 輸出:true
            
            console.log((new Date()).getTime() == Date.parse(new Date()));// 輸出:false
            

            /***********************************************Date.parse 獲取自定義時間************************************************/ 
            // 例子2:
            var timeStamp2 = Date.parse(new Date());
            console.log(timeStamp2);
            // 輸出:1556528914000
            
            // 例子3:
            var timeStamp3 = Date.parse('2019-4-29 00:00:00');
            console.log(timeStamp3);
            // 輸出:1556467200000

            // 例子4
            var timeStamp4 = Date.parse('2019-4-29');
            console.log(timeStamp3);
            // 輸出:1556467200000

            // 例子5
            var timeStamp5 = Date.parse('2019.4.29');
            console.log(timeStamp5);
            // 輸出:1556467200000

            // 例子6
            var timeStamp6 = Date.parse('2019/4/29');
            console.log(timeStamp6);
            // 輸出:1556467200000


            // 例子7
            var timeStamp7 = (new Date('2019.4.29')).valueOf();
            console.log(timeStamp7);
            //輸出:1556467200000

        </script> 
    </head>
    <body>
    
    </body>
</html>

 2、將時間戳轉換爲其餘

1.根據已知時間戳計算是周幾

function getWeekFn(value) {
    if (!value) return '';
    var newDate = new Date();
    newDate.setTime(parseInt(value));
    var temp = new Array("日", "一", "二", "三", "四", "五", "六");
    var week = new Date(newDate.toISOString()).getDay();
    return temp[week];
};
console.log(getWeekFn(Date.parse('2019.4.8')));
console.log(getWeekFn(‘1554652800000’ );
執行結果:「一」
 
2.根據給定日期計算周幾
function getWeekFn(value) {
    if (!value) return '';
    var newDate = new Date(value);
    var temp = new Array("日", "一", "二", "三", "四", "五", "六");
    var week = newDate.getDay();
    return temp[week];
};

例如:

       console.log(getWeekFn2('2019/4/8'))
  console.log(getWeekFn2('2019-4-8'))
  console.log(getWeekFn2('2019.4.8'))
執行結果: 「一」

注意:該字符串應該能被 Date.parse() 正確方法識別

 

 

 相關資料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

做者:smile.轉角

QQ:493177502

相關文章
相關標籤/搜索