2012-07-27 60 views
2

我需要使用Date對象有三個不同的用途,我可以這樣做,如下所示?如何在JavaScript中定義和操作Date變量?

我對JavaScript很新,所以我不確定下面的定義是否適用於所有的瀏覽器。

Date.prototype.yyyymmdd = function() 
{ 
    var yyyy = this.getFullYear().toString();  
    var mm = (this.getMonth()+1).toString(); 
    var dd = this.getDate().toString();  
    return yyyy+"-" + (mm[1]?mm:"0"+mm[0])+"-" + (dd[1]?dd:"0"+dd[0]); 

}; 

Date.prototype.mmddyyyy = function() 
{ 
    var yyyy = this.getFullYear().toString();  
    var mm = (this.getMonth()+1).toString(); 
    var dd = this.getDate().toString();  

    return (mm[1]?mm:"0"+mm[0])+"-" + (dd[1]?dd:"0"+dd[0])+"-" + yyyy; 
}; 

Date.prototype.mmdd = function() 
{ 
    var yyyy = this.getFullYear().toString();  
    var mm = (this.getMonth()+1).toString(); 
    var dd = this.getDate().toString();  
    return (mm[1]?mm:mm[0])+"/" + (dd[1]?dd:dd[0]); 
}; 


var d0 = new Date(); 
console.log(d0.mmddyyyy); 

var d1 = new Date(); 
console.log(d1.yyyymmdd); 

var d2 = new Date(); 
console.log(d2.mmdd); 

回答

1

你只是錯過了括號 - 它應該在任何瀏覽器(或但現在失敗,如果不支持控制檯在IE8中,打開)運行

DEMO

var d0 = new Date(); 
console.log(d0.mmddyyyy()); 

var d1 = new Date(); 
console.log(d1.yyyymmdd()); 

var d2 = new Date(); 
console.log(d2.mmdd()); 

我個人更喜歡一個原型

DEMO

Date.prototype.formatDate=function(fmt) { 
    fmt = fmt || "yyyymmdd"; 
    var yyyy = this.getFullYear();  
    var mm = this.getMonth()+1; 
    if (mm<10) mm="0"+mm; 
    var dd = this.getDate();  
    if (dd<10) dd="0"+dd; 
    if (fmt==="yyyymmdd") return yyyy+"-" + mm+"-" + dd; 
    if (fmt==="mmddyyyy") return ""+mm+"-" + dd +"-" + yyyy; 
    if (fmt==="mmdd") return ""+mm+"/"+dd; 
}; 


var d0 = new Date(); 
console.log(d0.formatDate("mmddyyyy")); 
console.log(d0.formatDate("yyyymmdd")); 
console.log(d0.formatDate("mmdd")); 
+0

哇...非常聰明...我會盡力讓你知道明天。 – user1456767 2012-07-27 06:53:37

+0

它運作良好...非常感謝您的幫助.... – user1456767 2012-07-27 21:39:26