2011-02-08 44 views
26

Tôi muốn để có được ngày hôm nay trong các định dạng của mm-dd-yyyyJavascript có được ngày ở định dạng

Tôi đang sử dụng var currentDate = new Date(); document.write(currentDate);

tôi không thể tìm ra cách để định dạng nó.

tôi thấy các ví dụ var currentTime = new Date(YY, mm, dd);currentTime.format("mm/dd/YY");

Cả hai trong số đó không có tác dụng

cuối cùng tôi đã có một ngày được định dạng đúng bằng

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1;//January is 0!` 

var yyyy = today.getFullYear(); 
if(dd<10){dd='0'+dd} 
if(mm<10){mm='0'+mm} 
var today = mm+'/'+dd+'/'+yyyy; 
document.write(today);'` 

Điều này có vẻ rất phức tạp đối với một nhiệm vụ đơn giản như vậy .

Có cách nào tốt hơn để lấy ngày hôm nay trong dd/mm/yyyy không?

+0

Tôi sẽ làm điều đó theo cách thủ công 'var d = new Date(); \t \t \t \t var s = new String(); \t \t \t \t s = (d.getHours() + "-" + d.getMinutes() + "-" + d.getSeconds() + "" + d.getDate() + "-" + d.getMonth() + "-" + d.getFullYear()). toString(); '. Tham khảo: http://www.w3schools.com/jsref/jsref_obj_date.asp – Nav

Trả lời

22

Đáng tiếc là không có cách nào tốt hơn, nhưng thay vì reinventing the wheel, bạn có thể sử dụng một thư viện để đối phó với ngày phân tích và định dạng: Datejs

<plug class="shameless">

Hoặc, nếu bạn thấy định dạng specifiers xấu xí và khó để giải mã, here's a concise formatting implementation cho phép bạn sử dụng định dạng specifiers con người có thể đọc được (cụ thể là, the Date instance getters tự):

date.format("{Month:2}-{Date:2}-{FullYear}"); // mm-dd-yyyy 

</plug>

+0

Tuyệt vời. Cảm ơn bạn! –

+0

Thư viện đẹp, có ích. –

3

Câu trả lời đơn giản là không. Đó là cách duy nhất để làm điều đó mà tôi biết. Bạn có thể quấn vào một chức năng mà bạn có thể sử dụng lại nhiều lần.

+0

được cho là có thể xảy ra. Cảm ơn bạn đời –

1

date.js là những gì bạn cần. Ví dụ, đoạn mã dưới đây là để chuyển đổi một ngày để chuỗi như phong cách Java dạng

new Date().toString('M/d/yyyy') 
-2
function appendZeros(value,digits){ 
    var c= 1; 
    initValue = value; 
    for(i=0;i<digits-1;i++){ 
     c = c*10; 
     if(initValue < c){ 
      value = '0' + value; 
     } 
    } 
    return value; 
} 
2
function dateNow(splinter){ 
    var set = new Date(); 
    var getDate = set.getDate().toString(); 
    if (getDate.length == 1){ //example if 1 change to 01 
    getDate = "0"+getDate; 
    } 
    var getMonth = (set.getMonth()+1).toString(); 
    if (getMonth.length == 1){ 
    getMonth = "0"+getMonth; 
    } 
    var getYear = set.getFullYear().toString(); 
    var dateNow = getMonth +splinter+ getDate +splinter+ getYear; //today 
    return dateNow; 
} 

chức năng này là mm dd yyyy và chia bạn có thể lựa chọn và thay thế nếu bạn muốn ... ví dụ dateNow ("/"), bạn sẽ nhận được 12/12/2014

11
var today = new Date(); 

var strDate = 'Y-m-d' 
    .replace('Y', today.getFullYear()) 
    .replace('m', today.getMonth()+1) 
    .replace('d', today.getDate()); 
+1

Rất đẹp và súc tích ... – Eamorr

+0

Câu trả lời thông minh +1 –

-1
(new Date()).format("MM-dd-yyyy") 

NB tháng là "MM" không phải "mm"

+0

Mô tả của bạn không rõ ràng. Ngoài ra, có rất nhiều câu trả lời thực sự tốt cho câu hỏi này rồi. Câu trả lời của bạn có đóng góp gì không? Nếu vậy, hãy xây dựng trong câu trả lời của bạn. – Suever

Các vấn đề liên quan