zoukankan      html  css  js  c++  java
  • Date型转换

    1:Date对象转换成字符串

     1 // 对Date的扩展,将 Date 转化为指定格式的String
     2 // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
     3 // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
     4 // 例子:
     5 // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
     6 // (new Date()).Format("yyyy-M-d h:m:s.S")   ==> 2006-7-2 8:9:4.18
     7 Date.prototype.Format = function (fmt) {
     8     var o = {
     9         "M+": this.getMonth() + 1, //月份
    10         "d+": this.getDate(), //
    11         "h+": this.getHours(), //小时
    12         "m+": this.getMinutes(), //
    13         "s+": this.getSeconds(), //
    14         "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    15         "S": this.getMilliseconds() //毫秒
    16     };
    17     if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    18     for (var k in o)
    19     if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    20     return fmt;
    21 }
    22 
    23 var date1 = new Date().Format("yyyy-MM-dd");
    24 var date2 = new Date().Format("yyyy-MM-dd hh:mm:ss");

    2:字符串转换成Date对象

     1 //2.1方法一:输入的时间格式为yyyy-MM-dd
     2 function convertDateFromString1(dateString) {
     3     if (dateString) { 
     4         var date = new Date(dateString.replace(/-/,"/")) 
     5         return date;
     6     }
     7 }
     8 
     9 //2.2方法二:输入的时间格式为yyyy-MM-dd hh:mm:ss
    10 function convertDateFromString2(dateString) { 
    11     if (dateString) { 
    12         var arr = dateString.replace(/ /g,"-").replace(/:/g,"-").split("-");
    13         // 年月日时分秒
    14         var date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]); 
    15         return date;
    16     } 
    17 }

    3:Date对象转换成时间戳

    1 var newDate = new Date();
    2 console.log(Number(newDate));

    4:将时间戳对象转换成Date

    1 var timestamp = 1523323795433;
    2 var newDate = new Date(timestamp);
    3 console.log(newDate);

    5:new Date()的5种参数设定

     1 // month:用英文 表示月份名称,从January到December 
     2 // mth:  用整数表示月份,从(1月)到11(12月) 
     3 // dd:   表示一个 月中的第几天,从1到31 
     4 // yyyy: 四位数表示的年份 
     5 // hh:   小时数,从0(午夜)到23(晚11点) 
     6 // mm:   分钟数,从0到59的整数 
     7 // ss:   秒数,从0到59的整数 
     8 // ms:   毫秒数,为大于等于0的整数
     9 // 1)new Date("month dd,yyyy hh:mm:ss"); 
    10 new Date("January 12,2006 22:19:35"); 
    11 // 2)new Date("month dd,yyyy"); 
    12 new Date("January 12,2006"); 
    13 // 3)new Date(yyyy,mth,dd,hh,mm,ss); 
    14 new Date(2006,0,12,22,19,35);
    15 // 4)new Date(yyyy,mth,dd); 
    16 new Date(2006,0,12); 
    17 // 5)new Date(ms); 
    18 new Date(1137075575000); 

    6:表示星期

     1  // 6.1 方法一:直接判断
     2  var myDate = new Date();
     3  var year = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
     4  var month = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
     5  var date = myDate.getDate(); //获取当前日(1-31)
     6  var day = myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
     7  if(day==1){day="星期一";}
     8  if(day==2){day="星期二";}
     9  if(day==3){day="星期三";}
    10  if(day==4){day="星期四";}
    11  if(day==5){day="星期五";}
    12  if(day==6){day="星期六";}
    13  if(day==0){day="星期日";}
    14  console.log(year + "-" + month + "-" + date + " " + day);
    15  
    16  // 6.2 方法二:对Date扩展
    17  // (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
    18  // (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
    19  // (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
    20  // (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
    21  Date.prototype.pattern=function(fmt) {
    22      var o = {
    23          "M+" : this.getMonth()+1, //月份
    24          "d+" : this.getDate(), //
    25          "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时
    26          "H+" : this.getHours(), //小时
    27          "m+" : this.getMinutes(), //
    28          "s+" : this.getSeconds(), //
    29          "q+" : Math.floor((this.getMonth()+3)/3), //季度
    30          "S" : this.getMilliseconds() //毫秒
    31      };
    32      // 把unicode解码成字符,要用转义字符'u'
    33      var week = {
    34          "0" : "u65e5",
    35          "1" : "u4e00",
    36          "2" : "u4e8c",
    37          "3" : "u4e09",
    38          "4" : "u56db",
    39          "5" : "u4e94",
    40          "6" : "u516d"
    41      };
    42      if(/(y+)/.test(fmt)){
    43          fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    44      }
    45      if(/(E+)/.test(fmt)){
    46          fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "u661fu671f" : "u5468") : "")+week[this.getDay()+""]);
    47      }
    48      for(var k in o){
    49          if(new RegExp("("+ k +")").test(fmt)){
    50              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
    51          }
    52      }
    53      return fmt;
    54  }
    55  
    56  var date = new Date();      
    57  console.log(date.pattern("yyyy-MM-dd EE hh:mm:ss"));

     7:计算两个时间差

     1 // 两个Date型日期直接相减,得出时间差(毫秒)
     2 parseInt(endTime.getTime() - startTime.getTime());
     3 
     4 // *如果需要算秒、分、时,需要对应再计算。
     5 var count = parseInt(inEndTime.getTime() - inStartTime.getTime());
     6 //相差天数
     7 var days=Math.floor(count/(24*3600*1000));
     8 //计算天数后剩余的毫秒数
     9 var leave1=count%(24*3600*1000);
    10 //相差小时数
    11 var hours=Math.floor(leave1/(3600*1000));
    12 //计算小时数后剩余的毫秒数
    13 var leave2=leave1%(3600*1000);
    14 //相差分钟数
    15 var minutes=Math.floor(leave2/(60*1000));
    16 //计算分钟数后剩余的毫秒数
    17 var leave3=leave2%(60*1000);
    18 //相差秒数
    19 var seconds=Math.round(leave3/1000);
    20 
    21 var result = days+"d "+hours+"h "+minutes+"m "+seconds+" s";
  • 相关阅读:
    003. 爬楼梯
    ZFlie网盘框架说明
    WPF基础:Dispatcher介绍
    WPF自定义控件三:消息提示框
    GO Time 类型方法处理集合
    UserControl 加载动画
    WPF自定义控件二:Border控件与TextBlock控件轮播动画
    WPF自定义控件一:StackPanel 控件轮播
    WPF 图表控件之曲线绘制与移动
    VueApp 自动更新解决plus is not defined问题
  • 原文地址:https://www.cnblogs.com/ciwei-214/p/8777114.html
Copyright © 2011-2022 走看看