J'ai une valeur "code" 20200513134950000 code> et le format doit être yyyymmddmmhhssuuu.
Je ne peux pas envelopper ma tête autour de la façon de le formater correctement. J'ai essayé la bibliothèque de date-FNS et le format de date natif, mais sans chance.
Des idées? P>
3 Réponses :
Vous pouvez essayer d'utiliser Dayjs .
C'est une bibliothèque légère et vous permet de spécifier format d'analyse personnalisé code> pour l'analyse des dates. const dayjs = require('dayjs');
var customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
console.log(dayjs('20200513134950000', 'YYYYMMDDmmhhssuuu'))
Vous pouvez extraire toutes les pièces pertinentes du nombre avec une simple réégycle ou même en comptant des nombres. Ensuite, la seule mise en garde est que des mois sont à base de zéro, mais en dehors de cela, vous pouvez simplement utiliser le constructeur de date standard ().
p>
const timestamp = 20200513134950000;
const UTC_mask = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{3})/;
const [
year,
month,
day,
hour,
min,
sec,
ms
] = timestamp.toString().match( UTC_mask ).slice( 1 );
const datetime = new Date( year, parseInt( month, 10 ) - 1, day, hour, min, sec, ms );
console.log( datetime );
Le mois peut être juste mois - 1 code>, l'opérateur - code> contrainte la chaîne au numéro pour vous. ;-)
Sans aucune bibliothèque, vous pouvez simplement obtenir les pièces et les transmettre au constructeur de date:
p>
let ts = '20200513134950000'; let [c,y,m,d,H,M,S] = ts.match(/\d\d/g); console.log(new Date(c+y,--m,d,H,M,S).toString());
Euh, vous n'avez pas déjà le bon format? 2020-05-13 13: 49: 50.000? Ou quel est le problème exactement? Retourner ce numéro dans un objet de date?
Ouais, analyser l'objet à ce jour
Est-ce que cela répond à votre question? Comment formater une date javascript