2014-12-15 10 views

Odpowiedz

30

Nie ma natywnego formatu w javascript dla DD-Mon-YYYY. Będziesz musiał to wszystko złożyć ręcznie.

Odpowiedź jest inspirowana z tym pytanie: 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-RRRR to tylko jeden z formatów. Format jQuery plugin, oparty jest na tej liście: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Testowany następujący kod w konsoli chrome:

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

tak rozumiem format daty, ale w jaki sposób można przekształcić aktualną datę do DD-MON rrrr, Np. Chcę uzyskać aktualną datę w formacie 15 grudnia 2014 r. – Tushar

+0

Normalnie powinno to działać (testowane w konsoli): test = new Date(); test.format ('d-M-Y') –

+3

To nie działało w mojej chromowanej konsoli. – Ahmad

-3

Wykorzystanie format daty dd-mm-yy. Wynik będzie następujący: 16-grudnia-2014.

+0

To nie jest odpowiedź.Proszę zaksięgować prawidłową stosowną odpowiedź – Ahmad

2

Zrobiłem niestandardową funkcję formatu ciągu daty, możesz z niej skorzystać.

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; 
    }; 

A teraz załóżmy, że mam: -

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

Więc sformatować tę datę piszesz: -

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

można zrobić następujące

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

To jest odpowiedź o bardzo niskiej jakości: proszę podać wyjaśnienie, co robi twój kod. Również ten kod nie przyjmuje parametru, ale oczekuje globalnej zmiennej 'd'. Na koniec nie odpowiada na pytania dotyczące PO: RRRR/MM/DD to nie to samo co DD-Mon-YYY, o które pytano. – wintvelt

+0

@wintvelt Przepraszam. Odpowiedź zaktualizowana. – 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)); 

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

+0

To nie jest format wymagany przez PO. – Ahmad

-1

  var today = new Date();   
 

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

+0

Ta odpowiedź nie spełnia wymagań PO. Wymagany format to dd-Mon-rrrr nie dd-MM-rrrr – Ahmad

Powiązane problemy