zoukankan      html  css  js  c++  java
  • Javascript兼容各浏览器的日期转换

    var date = new Date(Date.parse("2015-09-05".replace(/-/g,"/")));
    '2015-09-05'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是'2015/09/06'.

    -------------------------------------------------

    javascript的日期用法:

    var myDate = new Date();
    myDate.getYear(); //获取当前年份(2位)
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)
    myDate.getMonth(); //获取当前月份(0-11,0代表1月)
    myDate.getDate(); //获取当前日(1-31)
    myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 何问起 hovertree.com
    myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
    myDate.getHours(); //获取当前小时数(0-23)
    myDate.getMinutes(); //获取当前分钟数(0-59)
    myDate.getSeconds(); //获取当前秒数(0-59)
    myDate.getMilliseconds(); //获取当前毫秒数(0-999)
    myDate.toLocaleDateString(); //获取当前日期
    var mytime=myDate.toLocaleTimeString(); //获取当前时间
    myDate.toLocaleString( ); //获取日期与时间


    ==========================================================================
    JS获取当前时间戳的方法-JavaScript 获取当前时间戳
    JavaScript 获取当前时间戳:
    第一种方法:

    var timestamp =Date.parse(new Date());

    结果:1280977330000

    第二种方法:
     var timestamp =(new Date()).valueOf(); 
    结果:1280977330748
    第三种方法:
     var timestamp=new Date().getTime(); 
    结果:1280977330748
    第一种:获取的时间戳是把毫秒改成000显示,
    第二种和第三种是获取了当前毫秒的时间戳。
    我和同事在用js实现一个显示出分析数据所剩大概时间的过程中,时间总是变给0,结果很怪异,最后发现获取时间的时候用的是Date.parse(newDate())获取的时间戳把毫秒改成了000显示,所以时间差计算的不准确。
    可以用第二种或第三种方法计算时间差。http://hovertree.com/menu/javascript/
    js中单独调用new Date(),例如document.write(new Date());
    显示的结果是:Mar 31 10:10:43 UTC+0800 2012 这种格式的时间
    但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数
    --------------------------------------------------------------------------------------------------
    将字符串形式的日期转换成日期对象

    var strTime="2011-04-16"; //字符串日期格式 
    var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //转换成Data();
    var month=date.getMonth()+1; //获取当前月份

    ----------------------------------------------------

     1 // 获取当前时间戳(以s为单位)
     2 var timestamp = Date.parse(new Date());
     3 timestamp = timestamp / 1000;
     4 //当前时间戳为:1403149534
     5 console.log("当前时间戳为:" + timestamp);
     6 
     7 // 获取某个时间格式的时间戳
     8 var stringTime = "2014-07-10 10:21:12";
     9 var timestamp2 = Date.parse(new Date(stringTime));
    10 timestamp2 = timestamp2 / 1000;
    11 //2014-07-10 10:21:12的时间戳为:1404958872 
    12 console.log(stringTime + "的时间戳为:" + timestamp2);
    13 
    14 // 将当前时间换成时间格式字符串
    15 var timestamp3 = 1403058804;
    16 var newDate = new Date();
    17 newDate.setTime(timestamp3 * 1000);
    18 // Wed Jun 18 2014 
    19 console.log(newDate.toDateString());
    20 // Wed, 18 Jun 2014 02:33:24 GMT 
    21 console.log(newDate.toGMTString());
    22 // 2014-06-18T02:33:24.000Z
    23 console.log(newDate.toISOString());
    24 // 2014-06-18T02:33:24.000Z 
    25 console.log(newDate.toJSON());
    26 // 2014年6月18日 
    27 console.log(newDate.toLocaleDateString());
    28 // 2014年6月18日 上午10:33:24 
    29 console.log(newDate.toLocaleString());
    30 // 上午10:33:24 
    31 console.log(newDate.toLocaleTimeString());
    32 // Wed Jun 18 2014 10:33:24 GMT+0800 (中国标准时间)
    33 console.log(newDate.toString());
    34 // 10:33:24 GMT+0800 (中国标准时间) 
    35 console.log(newDate.toTimeString());
    36 // Wed, 18 Jun 2014 02:33:24 GMT
    37 console.log(newDate.toUTCString());
    38 
    39 Date.prototype.format = function(format) {
    40        var date = {
    41               "M+": this.getMonth() + 1,
    42               "d+": this.getDate(),
    43               "h+": this.getHours(),
    44               "m+": this.getMinutes(),
    45               "s+": this.getSeconds(),
    46               "q+": Math.floor((this.getMonth() + 3) / 3),
    47               "S+": this.getMilliseconds()
    48        };
    49        if (/(y+)/i.test(format)) {
    50               format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    51        }
    52        for (var k in date) {
    53               if (new RegExp("(" + k + ")").test(format)) {
    54                      format = format.replace(RegExp.$1, RegExp.$1.length == 1
    55                             ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
    56               }
    57        }
    58        return format;
    59 }
    60 console.log(newDate.format('yyyy-MM-dd h:m:s'));


  • 相关阅读:
    ubuntu安装mysql并修改编码为utf-8
    ubuntu16.04安装jdk1.8
    解决 Can't Connect to MySQL Server on IPAddress (10061) 的问题
    使用开源数据库客户端DBeaver连接DB2数据库
    Windows下使用console线连接思科交换机
    win7安装JDK6
    Python将excel文件从xls转换为xlsx
    Windows使用Gitblit搭建Git服务器
    B树、B-树、B+树、B*树
    必须熟悉的vim快捷键操作
  • 原文地址:https://www.cnblogs.com/lxny/p/7153610.html
Copyright © 2011-2022 走看看