2017-03-03 1 views
1

Je reçois la date de l'extrémité arrière en 2017-03-02T08:12:22.997000+00:00 ce format.Format de date personnalisé où le type sera l'objet et l'instance de la date

Pour afficher cette date au format spécifié que je fais new Date('2017-03-02T08:12:22.997000+00:00').toLocaleString() qui donne 3/2/2017, 1:42:22 PM

Il y a une fonctionnalité qui est le tri de cette sortie formatée. L'ordre du jour consiste à trier la sortie en fonction du type 'date'. Mais puisque j'utilise la méthode toLocaleString() pour le formatage, le tri est fait en fonction du type 'chaîne'.

Existe-t-il une solution où je peux atteindre le format 3/2/2017, 1:42:22 PM et le type sera un objet Date?

Ou un format de date où je peux voir la date et l'heure à l'exclusion de la partie GMT? (comme toUTCString())

Ou toute méthode du moment travaillera?

+0

un coup d'oeil sur cette http://stackoverflow.com/questions/1576753/parse-datetime-string-in-javascript – user7417866

+2

Cela semble être une combinaison de "[* comment puis-je analyser une chaîne ISO 8601 à une date *] (http://stackoverflow.com/questions/4829569/help-parsing-iso-8601-date-in-javascript) "," [* comment trier les dates *] (http://stackoverflow.com/questions/26735854/how-to-return-the-lowest-date-value-and-highest-date-value-from- an-array-in-java/26736729 # 26736729) "et" [* comment puis-je formater une date *] (http://stackoverflow.com/questions/1056728/where-can-i-find-documentation-on- formatage-a-date-en-javascript? s = 1 | 8.9678) ". Les dates initiales étant des chaînes, vous pouvez les trier, puis utiliser un objet Date pour le formatage. – RobG

+0

Notez que * toLocaleString * dépend entièrement de l'implémentation et produit des résultats différents sur des hôtes différents. – RobG

Répondre

0

vous pouvez utiliser moment.js qui vous donnera l'objet moment.

première date de conversion à ISODate comme moment.js dernière version a désapprouvée constructeur de moment avec chaîne de date illégale (more info here)

var isoDate = new Date('2017-03-02T08:12:22.997000+00:00').toISOString(), 
    formatedDate = moment(isoDate).format('DD/MM/YYYY, HH:MM:SS A'); 

// formatedDate: "03.02.2017, 13:03:99 PM"

vous pouvez utiliser pour une meilleure manipulation Timezone du temps -

moment(isoDate).tz('timezoneValue').format('DD/MM/YYYY, HH:MM:SS A');