Hoe converteer je een volledige datum naar een korte datum in javascript?

Ik heb zo’n afspraak op maandag 9 januari 2010

Ik wil het nu converteren naar

1/9/2010 mm/dd/jjjj

Ik heb geprobeerd dit te doen

   var startDate = "Monday, January 9, 2010";
    var convertedStartDate = new Date(startDate);
    var month = convertedStartDate.getMonth() + 1
    var day = convertedStartDate.getDay();
    var year = convertedStartDate.getFullYear();
    var shortStartDate = month + "/" + day + "/" + year;

Het moet echter denken dat de datum in een ander formaat is, aangezien dag 1 in plaats van 9 retourneert.


Antwoord 1, autoriteit 100%

Hier ga je:

(new Date()).toLocaleDateString('en-US');

Dat is het !!

je kunt het op elk datumobject gebruiken

laten we zeggen… je hebt een object genaamd “currentDate”

var currentDate = new Date(); //use your date here
currentDate.toLocaleDateString('en-US'); // "en-US" gives date in US Format - mm/dd/yy

(of)

Als je het in lokaal formaat wilt, dan

currentDate.toLocaleDateString(); // gives date in local Format

Antwoord 2, autoriteit 96%

De methode getDay()retourneert een getal om de dag in de week aan te geven (0=zo, 1=ma, … 6=za). Gebruik getDate()om een ​​getal voor de dag in de maand te retourneren:

var day = convertedStartDate.getDate();

Als je wilt, kun je proberen een functie voor aangepaste opmaak toe te voegen aan het prototype van het Date-object:

Date.prototype.formatMMDDYYYY = function(){
    return (this.getMonth() + 1) + 
    "/" +  this.getDate() +
    "/" +  this.getFullYear();
}

Hierna kunt u formatMMDDYYY()aanroepen op elkeinstantie van het Dateobject. Dit is natuurlijk maar een heel specifiek voorbeeld, en als je het echt nodig hebt, kun je een generieke opmaakfunctie schrijven die dit zou doen op basis van een opmaakreeks, een beetje zoals Java’s SimpleDateeFormat (http://java.sun.com/j2se/1.4.2/docs/api/java /text/SimpleDateFormat.html)

(tangent: het object Datebrengt me altijd in de war… getYear()vs getFullYear(), getDate()vs getDay(), getDate()varieert van 1..31, maar getMonth()van 0..11

Het is een puinhoop en ik moet altijd even kijken. http://www.w3schools.com/jsref/jsref_obj_date.asp)


Antwoord 3, autoriteit 82%

Ingebouwde toLocaleDateString()doet het werk, maar het verwijdert de eerste nullen voor de dag en de maand, dus we krijgen zoiets als “1/9/1970”, wat niet het geval is perfect volgens mij. Om een ​​juist formaat MM/DD/YYYYte krijgen, kunnen we zoiets gebruiken als:

new Date(dateString).toLocaleDateString('en-US', {
  day: '2-digit',
  month: '2-digit',
  year: 'numeric',
})

Update: we kunnen soortgelijk gedrag krijgen met Intl.DateTimeFormatmet fatsoenlijke browserondersteuning. Net als bij toLocaleDateString(), kunnen we een object doorgeven met opties:

const date = new Date('Dec 2, 2021') // Thu Dec 16 2021 15:49:39 GMT-0600
const options = {
  day: '2-digit',
  month: '2-digit',
  year: 'numeric',
}
new Intl.DateTimeFormat('en-US', options).format(date) // '12/02/2021'

Antwoord 4, autoriteit 14%

var d = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)"); 
document.getElementById("demo").innerHTML = d.toLocaleDateString();

Antwoord 5, autoriteit 4%

date.toLocaleDateString('en-US')werkt prima. Hier is wat meer informatie over: https:/ /developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString


Antwoord 6, autoriteit 2%

Ik wilde dat de datum werd weergegeven in het veld type=’time’.

De normale conversie slaat de nullen over en het formulierveld toont de waarde niet en geeft een fout weer in de console waarin staat dat het formaat jjjj-mm-dd moet zijn.

Daarom heb ik een kleine verklaring (vinkje)?(true):(false) als volgt toegevoegd:

makeShortDate=(date)=>{
yy=date.getFullYear()
mm=date.getMonth()
dd=date.getDate()
shortDate=`${yy}-${(mm<10)?0:''}${mm+1}-${(dd<10)?0:''}${dd}`;
return shortDate;
}

Antwoord 7

Ik kon dat doen met:

var dateTest = new Date("04/04/2013");
dateTest.toLocaleString().substring(0,dateTest.toLocaleString().indexOf(' '))

de 04/04/2013 is alleen om te testen, vervang deze door uw datumobject.


Antwoord 8

Je zou dit vrij gemakkelijk kunnen doen met mijn date-shortcodepakket:

const dateShortcode = require('date-shortcode')
var startDate = 'Monday, January 9, 2010'
dateShortcode.parse('{M/D/YYYY}', startDate)
//=> '1/9/2010'

Antwoord 9

Probeer dit:

new Date().toLocaleFormat("%x");

Other episodes