Hur får jag fram det aktuella datumet i JavaScript?

Hur får jag fram aktuellt datum i JavaScript?

Lösning

Använd new Date() för att skapa ett nytt Date-objekt som innehåller det aktuella datumet och klockan.

var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

Detta ger dig dagens datum i formatet mm/dd/ååå.

Ändra bara today = mm +'/'+ dd +'/'+ yyyy; till det format du vill ha.

Kommentarer (13)

UPPDATERAD!, rulla nedåt

Om du vill ha något enkelt och vackert för slutanvändaren ... Också ett litet problem med suffix i den första versionen nedan. Nu returnerar suffixet korrekt.

var objToday = new Date(),
    weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
    dayOfWeek = weekday[objToday.getDay()],
    domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
    dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
    months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
    curMonth = months[objToday.getMonth()],
    curYear = objToday.getFullYear(),
    curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
    curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
    curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
    curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;

document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>

UBBER UPDATE Efter mycket uppskov har jag äntligen GitHubbed och uppdaterat detta med den slutliga lösningen som jag har använt för mig själv. Den har till och med fått några sista-minuten-redigeringar för att göra den bättre! Om du letar efter den gamla [jsFiddle, se den här][2].

Denna uppdatering kommer i 2 smaker, fortfarande relativt små, men inte lika små som mitt ovanstående, ursprungliga svar. Om du vill ha extremt litet, välj det. <br /&> Observera också: Detta är fortfarande mindre uppblåst än moment.js. Medan moment.js är trevligt, imo, har det för många sekulära metoder, vilket kräver att man lär sig moment som om det vore ett språk. Min här använder samma vanliga format som PHP: date.

Snabblänkar

Smak 1 [new Date().format(String)][3] Min personliga favorit. Jag vet att det är tabu, men det fungerar utmärkt på Date Object. Var bara medveten om alla andra modifikationer du kan ha för Date Object.

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

Smak 2 [dateFormat(Date, String)][4] Mer traditionell allt-i-ett-metod. Har alla möjligheter som den föregående, men anropas via metoden med Date-parametern.

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

BONUS smak (kräver jQuery) $.date(Date, String) Detta innehåller mycket mer än bara ett enkelt format-alternativ. Det utökar basobjektet Date och innehåller metoder som addDays. För mer information, se Git.

I denna mod är formattecknen inspirerade av PHP: date. För en fullständig lista, se min README.

Det här modet har också en mycket längre lista över förtillverkade format. För att använda ett förtillverkat format anger du helt enkelt dess nyckelnamn. dateFormat(new Date(), 'pretty-a');

  • 'sammansättning'
    • 'commonLogFormat' == 'd/M/Y:G:i:s'
    • 'exif' == 'Y:m:d G:i:s'
    • 'isoYearWeek' == 'Y\\WW'
    • 'isoYearWeek2' == 'Y-\\WW'
    • 'isoYearWeekDay' == 'Y\\\WWWj'
    • 'isoYearWeekDay2' == 'Y-\\\WWW-j'
    • 'mySQL' == 'Y-m-d h:i:s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • 'soap' == 'Y-m-d\\TH:i:s.u'
    • 'soap2' == 'Y-m-d\\\TH:i:s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd\\\TG:i:s'
    • 'xmlrpcCompact' == 'Ymd\\\tGis'
    • 'wddx' == 'Y-n-j\\\TG:i:s'
  • 'konstanter'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm/d/Y'
    • 'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
    • 'ATOM' == 'Y-m-d\\TH:i:sP'
    • 'COOKIE' == 'l d-M-Y H:i:s T'
    • 'EUROPEAN' == 'j F Y'
    • 'EUROPEANSHORT' == 'd.m.Y'
    • 'EUROPEANSHORTWTIME' == 'd.m.Y H:i:s'
    • 'ISO8601' == 'Y-m-d\\TH:i:sO'
    • 'LEGAL' == 'j F Y'
    • 'RFC822' == 'D d M y H:i:s O'
    • 'RFC850' == 'l d-M-y H:i:s T'
    • 'RFC1036' == 'D d M y H:i:s O'
    • 'RFC1123' == 'D d M Y H:i:s O'
    • 'RFC2822' == 'D d M Y H:i:s O'
    • 'RFC3339' == 'Y-m-d\\TH:i:sP'
    • 'RSS' == 'D d M Y H:i:s O'
    • 'W3C' == 'Y-m-d\\\TH:i:sP'
  • 'ganska'
    • 'pretty-a' == 'g:i.sA l jS \\\o\\\f F Y'
    • 'pretty-b' == 'g:iA l jS \\o\\\f F Y'
    • 'pretty-c' == 'n/d/Y g:iA'
    • 'pretty-d' == 'n/d/Y'
    • 'pretty-e' == 'F jS - g:ia'
    • 'pretty-f' == 'g:iA'

Som du kanske märker kan du använda dubbla \ för att undkomma ett tecken.


Kommentarer (6)

Prova det här:

var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("" + day + "/" + month + "/" + year + "")

Resultatet kommer att se ut som

15/2/2012
Kommentarer (1)