Vraag Hoe krijg ik de huidige datum in JavaScript?


Hoe krijg ik de huidige datum in JavaScript?


1681
2017-10-07 11:39


oorsprong


antwoorden:


Gebruik new Date() om een ​​nieuw te genereren Date object met de huidige datum en tijd.

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
} 

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

Dit geeft je de datum van vandaag in het formaat van mm / dd / jjjj.

Eenvoudig veranderen today = mm +'/'+ dd +'/'+ yyyy; in welk formaat je maar wilt.


2003
2018-02-08 04:42



var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

Gebruik de replace optie als u het gaat hergebruiken utc variabele, zoals new Date(utc), omdat Firefox en Safari geen datum met streepjes herkennen.


340
2017-09-29 14:13



UPDATE!, Naar beneden scrollen

Als je iets heel eenvoudig wilt voor de eindgebruiker ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

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 Na veel uitstel heb ik het eindelijk GitHubbed en heb dit bijgewerkt met de uiteindelijke oplossing die ik voor mezelf heb gebruikt. Het heeft zelfs een paar laatste bewerkingen ondergaan om het zoeter te maken! Als je op zoek bent naar het oude jsFiddle, kijk hier alsjeblieft.

Deze update komt binnen 2 smaken, nog steeds relatief klein, hoewel niet zo klein als mijn bovenstaande, originele antwoord. Als je extreem klein wilt, ga daar dan mee akkoord.
 Let ook op: dit is nog steeds minder opgeblazen dan moment.js. Hoewel moment.js leuk is, imo, heeft het te veel seculiere methoden, die een leermoment vereisen alsof het een taal is. De mijne gebruikt hier hetzelfde algemene formaat als PHP: date.

Snelle links

Smaak 1 new Date().format(String)   Mijn persoonlijke favoriet. Ik ken het taboe, maar werkt geweldig op het Date Object. Houd alleen rekening met andere mods die u mogelijk hebt met het Date Object.

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

Smaak 2 dateFormat(Date, String)   Meer traditionele alles-in-één methode. Heeft alle mogelijkheden van de vorige, maar wordt aangeroepen via methode met Date param.

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

BONUS Smaak (vereist jQuery) $.date(Date, String)   Dit bevat veel meer dan alleen een simpele format keuze. Het breidt het basis object Date uit en omvat methoden zoals addDays. Zie de. Voor meer informatie Git.

In deze mod worden de formaatkarakters geïnspireerd door PHP: date. Zie mijn voor een volledige lijst Leesmij

Deze mod heeft ook een veel langere lijst met vooraf gemaakte formaten. Om een ​​premade-indeling te gebruiken, voert u eenvoudig de naam van de sleutel in. dateFormat(new Date(), 'pretty-a');

  • 'Verbinding'
    • 'commonLogFormat' == 'd / M / Y: G: i: s'
    • 'exif' == 'Y: m: d G: i: s'
    • 'isoYearWeek' == 'Y \\ WW'
    • 'isoYearWeek2' == 'Y - \\ WW'
    • 'isoYearWeekDay' == 'Y \\ WWj'
    • 'isoYearWeekDay2' == 'Y - \\ WW-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'
  • 'Constanten'
    • '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'
    • 'JURIDISCH' == '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'
  • 'mooi'
    • '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'

Zoals u misschien opmerkt, kunt u dubbele gebruiken \ om een ​​personage te ontsnappen.



187
2018-02-10 14:33



Als u alleen een datum zonder tijdinfo wilt, gebruik dan:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);


115
2017-09-02 06:14



Probeer dit:

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

Het resultaat zal zijn als

15/2/2012

90
2018-02-15 08:48



De kortst mogelijke:

let today = new Date().toISOString().slice(0, 10)

Het komt terug "2016-03-10"


61
2018-03-10 16:30



Als u op zoek bent naar veel meer gedetailleerde controle over de datumnotaties, raad ik u ten zeerste aan om momentjs uit te checken. Geweldige bibliotheek - en slechts 5KB. http://momentjs.com/


57
2017-12-12 01:03



U kunt gebruik maken van moment.js: http://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


45
2017-08-16 11:56



var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

Om het op te splitsen in stappen:

  1. (new Date()).toString() geeft "Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') verdeelt de bovenstaande reeks op elke spatie en retourneert een array als volgt: ["Vrij", "Juni", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') neemt de tweede, derde en vierde waarden van de bovenstaande array, voegt ze samen met spaties en retourneert een tekenreeks "28 jun 2013"


41
2018-06-28 22:32