zoukankan      html  css  js  c++  java
  • 【js】项目中有关时间的问题

    一、时间戳

    简单讲,unix时间戳就是从1970-01-01开始所经过的秒数,什么时候获取时间戳,就是到那个时间点所经历的秒数。

    二、JavaScript获取时间戳

    根据时间戳的定义,可以使用javascript中的几个方法来获取系统当前的时间戳:

    1、getTime()

    w3c school的解释如下:

    根据上面的定义,我们可以获取系统当前的时间戳:

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

    2、parse()

    根据上面的解释,parse方法返回的是指定日期和时间到1970年1月1日的毫秒数,所以只要将日期指定为系统当前时间,就能获取系统当前的时间戳。

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

    3、valueOf()

      

    该方法返回的是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(chrome)  1556467200000(firefox)
    
                // 例子4
                var timeStamp4 = Date.parse('2019-4-29');
                console.log(timeStamp4);
                // 输出:1556467200000(chrome)  1556496000000(firefox)
    
                // 例子5
                var timeStamp5 = Date.parse('2019.4.29');
                console.log(timeStamp5);
                // 输出:1556467200000(chrome)  NaN(firefox)
    
                // 例子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>

    三、将时间戳转换为其他

    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

  • 相关阅读:
    CareerCup Questions List 职业杯题目列表
    [CareerCup] Guards in a museum 博物馆的警卫
    [LeetCode] 7. Reverse Integer 翻转整数
    Python笔记11------一个K-means聚类的小例子
    python笔记10-----便捷网络数据NLTK语料库
    Python笔记9-----不等长列表转化成DataFrame
    Python笔记8----DataFrame(二维)
    Python笔记7----Pandas中变长字典Series
    Python笔记6----数组
    Python笔记5----集合set
  • 原文地址:https://www.cnblogs.com/websmile/p/10791752.html
Copyright © 2011-2022 走看看