1. 程式人生 > >new Date()日期格式處理

new Date()日期格式處理

 專案開發中遇到的格式問題:

const strTime="2018-1-1 9:10:10";
const myDate new Date(strTime);
const Y = myDate.getFullYear();
const M = myDate.getMonth()+1;
const D = myDate.getDate();
const curDay = Y + '-'+ M + '-' + D;
console.log(curDay);

          輸出結果:Android系統:2018-1-1           iOS 系統:NaN-NaN-NaN 

以下是一些時間格式的轉換與時間的獲取: 

var myDate = new Date();  
myDate.getYear(); //獲取當前年份(2位)  
myDate.getFullYear(); //獲取完整的年份(4位,1970-????)  
myDate.getMonth(); //獲取當前月份(0-11,0代表1月)         // 所以獲取當前月份是myDate.getMonth()+1;   
myDate.getDate(); //獲取當前日(1-31)  
myDate.getDay(); //獲取當前星期X(0-6,0代表星期天)  
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 獲取當前毫秒時間戳有以下三種方法:  

var timestamp =Date.parse(new Date());    結果:1280977330000       //不推薦; 毫秒改成了000顯示  

var timestamp =(new Date()).valueOf();       結果:1280977330748       //推薦;   

var timestamp=new Date().getTime();         結果:1280977330748        //推薦;   

注:js中單獨呼叫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();  

    new Date() ;     //引數可以為整數; 也可以為字串; 但格式必須正確 

    new Date(2009,1,1);      //正確 

    new Date("2009/1/1");   //正確  

    new Date("2009-1-1");   //錯誤  

    new Date( year, month, date, hrs, min, sec)  按給定的引數建立一日期物件 
  引數說明: 
  year的值為:需設定的年份-1900。例如需設定的年份是1997則year的值應為97,即1997-1900的結果。所以Date中可設定         的年份最小為1900; 
  month的值域為0~11,0代表1月,11表代表12月; 
  date的值域在1~31之間; 
  hrs的值域在0~23之間。從午夜到次日凌晨1點間hrs=0,從中午到下午1點間hrs=12; 
  min和sec的值域在0~59之間。 
  例 Date day=new Date(11,3,4); 
  //day中的時間為:04-Apr-11 12:00:00 AM  

       另外,還可以給出不正確的引數。 
  例 設定時間為1910年2月30日,它將被解釋成3月2日。 
  Date day=new Date(10,1,30,10,12,34); 
  System.out.println("Day's date is:"+day); 
  //列印結果為:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910 
--------------------------------------------------------------------------------------------------

1.日期格式轉為日期標準字串:2015-03-19

var formatDate = function (date) {  
    var y = date.getFullYear();  
    var m = date.getMonth() + 1;  
    m = m < 10 ? '0' + m : m;  
    var d = date.getDate();  
    d = d < 10 ? ('0' + d) : d;  
    return y + '-' + m + '-' + d;  
};  

2.js方法返回值:2015-03-19 12:00:00

var formatDateTime = function (date) {  
                var y = date.getFullYear();  
                var m = date.getMonth() + 1;  
                m = m < 10 ? ('0' + m) : m;  
                var d = date.getDate();  
                d = d < 10 ? ('0' + d) : d;  
                var h = date.getHours();  
                h=h < 10 ? ('0' + h) : h;  
                var minute = date.getMinutes();  
                minute = minute < 10 ? ('0' + minute) : minute;  
                var second=date.getSeconds();  
                second=second < 10 ? ('0' + second) : second;  
                return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;  
            };  

呼叫:formatDate(Date()) formatDate(Date())

3.時間戳轉為日期格式

//時間戳轉日期格式  
      var formatDateTime3 = function(time, format){  
          var t = new Date(time);  
          var tf = function(i){return (i < 10 ? '0' : '') + i};  
          return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){  
              switch(a){  
                  case 'yyyy':  
                      return tf(t.getFullYear());  
                      break;  
                  case 'MM':  
                      return tf(t.getMonth() + 1);  
                      break;  
                  case 'mm':  
                      return tf(t.getMinutes());  
                      break;  
                  case 'dd':  
                      return tf(t.getDate());  
                      break;  
                  case 'HH':  
                      return tf(t.getHours());  
                      break;  
                  case 'ss':  
                      return tf(t.getSeconds());  
                      break;  
              }  
          })  
      };  

4.時間格式字串轉為時間戳(毫秒)

var time1=‘2016-01-01 17:22:37’;  
var date=new Date(time1.replace(/-/g, '/'));  //開始時間  
var time2=date.getTime();  

如何將2015-03-12 12:00 轉換成標準時間()?

Thu Mar 19 2015 12:00:00 GMT+0800 (中國標準時間)
var parserDate = function (date) {  
    var t = Date.parse(date);  
    if (!isNaN(t)) {  
        return new Date(Date.parse(date.replace(/-/g, "/")));  
    } else {  
        return new Date();  
    }  
};  

js方法返回值:Thu Mar 19 2015 12:00:00 GMT+0800 (中國標準時間)

5.判斷時間間隔不超過24個小時

var date1=new Date("2004/09/16 20:08:00");
var date2=new Date("2004/09/17 20:08:00");
var date3=(date2.getTime()-date1.getTime())/1000;   //相差秒數
 if(date3>60*60*24*1000){  
          alert("開始時間與結束時間間隔大於24小時!");  
          return false;  }