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'));


  • 相关阅读:
    WCF Server Console
    Restart IIS With Powershell
    RestartService (recursively)
    Copy Files
    Stopping and Starting Dependent Services
    多线程同步控制 ManualResetEvent AutoResetEvent MSDN
    DTD 简介
    Using Powershell to Copy Files to Remote Computers
    Starting and Stopping Services (IIS 6.0)
    java中的NAN和INFINITY
  • 原文地址:https://www.cnblogs.com/lxny/p/7153610.html
Copyright © 2011-2022 走看看