2014-12-15 10 views
14

Tôi cần có định dạng ngày là 'DD-Mon-YYYY' trong javascript. Tôi đã hỏi một question, và nó đã đánh dấu trùng lặp để jQuery date formattingNhận ngày hiện tại ở định dạng DD-Mon-YYY trong JavaScript/Jquery

Tuy nhiên, câu trả lời được cung cấp trong câu hỏi là để có được ngày hiện tại ở định dạng "DD-MM-YYYY" chứ không phải "DD-MON-YYYY" . Thứ hai, tôi không sử dụng plugin datepicker.

bạn có thể vui lòng giúp tôi, nếu như làm thế nào để có được ngày hiện tại ở định dạng "DD-Mon-YYYY".

Trả lời

30

Không có định dạng gốc trong javascript cho DD-Mon-YYYY. Bạn sẽ phải đặt tất cả lại với nhau theo cách thủ công.

Câu trả lời được lấy cảm hứng từ câu hỏi này: How to format a JavaScript date

var m_names = new Array("Jan", "Feb", "Mar", 
"Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec"); 

var d = new Date(); 
var curr_date = d.getDate(); 
var curr_month = d.getMonth(); 
var curr_year = d.getFullYear(); 
document.write(curr_date + "-" + m_names[curr_month] 
+ "-" + curr_year); 
2

DD-MM-YYYY chỉ là một trong các định dạng. Định dạng của các plugin jquery, dựa trên danh sách này: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Tested sau mã trong chrome console:

test = new Date() 
test.format('d-M-Y') 
"15-Dec-2014" 
+0

vâng tôi hiểu định dạng ngày, nhưng làm thế nào tôi có thể chuyển đổi ngày hiện tại để dd-Mơn yyyy, Ví dụ: Tôi muốn có ngày hiện tại trong định dạng ngày 15 tháng 12 năm 2014. – Tushar

+0

Thông thường, thao tác này sẽ hoạt động (được kiểm tra trong bảng điều khiển): test = new Date(); test.format ('d-M-Y') –

+3

Điều này không hoạt động trong bảng điều khiển chrome của tôi. – Ahmad

15

Sử dụng các thư viện Moment.js http://momentjs.com/ Nó sẽ giúp bạn tiết kiệm rất nhiều rắc rối.

moment().format('DD-MMM-YYYY'); 
-3

Sử dụng định dạng ngày dd-MM-yy. Nó sẽ xuất như: 16-December-2014.

+0

Đây không phải là câu trả lời.Vui lòng gửi câu trả lời có hiệu lực – Ahmad

2

Tôi đã thực hiện chức năng định dạng chuỗi ngày tùy chỉnh, bạn có thể sử dụng chức năng đó.

var getDateString = function(date, format) { 
     var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], 
     getPaddedComp = function(comp) { 
      return ((parseInt(comp) < 10) ? ('0' + comp) : comp) 
     }, 
     formattedDate = format, 
     o = { 
      "y+": date.getFullYear(), // year 
      "M+": months[date.getMonth()], //month 
      "d+": getPaddedComp(date.getDate()), //day 
      "h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour 
      "H+": getPaddedComp(date.getHours()), //hour 
      "m+": getPaddedComp(date.getMinutes()), //minute 
      "s+": getPaddedComp(date.getSeconds()), //second 
      "S+": getPaddedComp(date.getMilliseconds()), //millisecond, 
      "b+": (date.getHours() >= 12) ? 'PM' : 'AM' 
     }; 

     for (var k in o) { 
      if (new RegExp("(" + k + ")").test(format)) { 
       formattedDate = formattedDate.replace(RegExp.$1, o[k]); 
      } 
     } 
     return formattedDate; 
    }; 

Và bây giờ giả sử bạn đã: -

var date = "2014-07-12 10:54:11"; 

Vì vậy, để định dạng ngày này bạn viết: -

var formattedDate = getDateString(new Date(date), "d-M-y") 
2

Bạn có thể làm như sau

var date = new Date(); 
date.toLocaleDateString("en-au", {year: "numeric", month: "short",day: "numeric"}).replace(/\s/g,'-') 
1
/* 
    #No parameters 
    returns a date with this format DD-MM-YYYY 
*/ 
function now() 
{ 
    var d = new Date(); 
    var month = d.getMonth()+1; 
    var day = d.getDate(); 

    var output = (day<10 ? '0' : '') + day + "-" 
       + (month<10 ? '0' : '') + month + '-' 
       + d.getFullYear(); 

    return output; 
} 
+0

Đây là câu trả lời có chất lượng rất thấp: vui lòng cung cấp giải thích về mã của bạn. Ngoài ra, mã này không có tham số, nhưng không mong đợi một biến toàn cục 'd'. Cuối cùng, nó không trả lời câu hỏi OP: YYYY/MM/DD không giống như DD-Mon-YYY đã được yêu cầu. – wintvelt

+0

@wintvelt Tôi xin lỗi. Đã cập nhật câu trả lời. – gtzinos

0
var date = new Date(); 

console.log(date.toJSON().slice(0,10).replace(new RegExp("-", 'g'),"/").split("/").reverse().join("/")+" "+date.toJSON().slice(11,19)); 

// ra: 01/09/2016 18:30:00

+0

Đó không phải là định dạng do OP yêu cầu. – Ahmad

-1

  var today = new Date();   
 

 
      var formattedtoday = today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear(); 
 
      
 
      alert(formattedtoday);

+0

Câu trả lời này không đáp ứng yêu cầu của OP. Định dạng được yêu cầu là dd-Mon-yyyy chứ không phải dd-MM-yyyy – Ahmad

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