121 votes

Fonction pour convertir un timestamp en date lisible pour l'homme en Javascript

Comment convertir ce timestamp 1382086394000 en 18-10-2013 08:53:14 en utilisant une fonction en javascript ? Actuellement, j'ai cette fonction :

function cleanDate(d) {return new Date(+d.replace(/\/Date\((\d+)\)\//, '$1'));}

10voto

KARTHIKEYAN.A Points 4408

Nous devons créer une nouvelle fonction en utilisant JavaScript.

function unixTime(unixtime) {

    var u = new Date(unixtime*1000);

      return u.getUTCFullYear() +
        '-' + ('0' + u.getUTCMonth()).slice(-2) +
        '-' + ('0' + u.getUTCDate()).slice(-2) + 
        ' ' + ('0' + u.getUTCHours()).slice(-2) +
        ':' + ('0' + u.getUTCMinutes()).slice(-2) +
        ':' + ('0' + u.getUTCSeconds()).slice(-2) +
        '.' + (u.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) 
    };

console.log(unixTime(1370001284))

2016-04-30 08:36:26.000

6voto

Black Mamba Points 2255

Utilisez .toLocaleString :

// undefined utilise la langue par défaut
console.log(new Date().toLocaleString(undefined, {dateStyle: 'short'}));

Ou une méthode personnalisée au cas où vous ne voulez pas utiliser toLocaleString pour une raison quelconque :

formatDate est la fonction que vous pouvez appeler et passer la date que vous souhaitez formater en jj/mm/aaaa

var unformatedDate = new Date("2017-08-10 18:30:00");

$("#hello").append(formatDate(unformatedDate));
function formatDate(nowDate) {
    return nowDate.getDate() +"/"+ (nowDate.getMonth() + 1) + '/'+ nowDate.getFullYear();
}

6voto

Hidayt Rahman Points 1045

C'est ce que j'ai fait pour l'API Instagram. J'ai converti le timestamp avec la méthode de la date en le multipliant par 1000. puis j'ai ajouté toutes les entités individuellement comme (année, mois, etc)

créé la liste personnalisée des noms de mois et l'ai assortie avec la méthode getMonth() qui renvoie l'index du mois.

convertStampDate(unixtimestamp){

// Tableau des mois
var months_arr = ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'];

// Convertir le timestamp en millisecondes
var date = new Date(unixtimestamp*1000);

// Année
var year = date.getFullYear();

// Mois
var month = months_arr[date.getMonth()];

// Jour
var day = date.getDate();

// Heures
var hours = date.getHours();

// Minutes
var minutes = "0" + date.getMinutes();

// Secondes
var seconds = "0" + date.getSeconds();

// Afficher la date et l'heure au format MM-jj-aaaa h:m:s
var fulldate = month+' '+day+'-'+year+' '+hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

// date finale
var convdataTime = month+' '+day;
return convdataTime;
}

Appel avec un argument de tampon convertStampDate('1382086394000')

et c'est tout.

4voto

Arshal_d Points 66

Il existe un moyen simple de convertir en une forme plus lisible

new Date().toLocaleString();
new Date(1630734254000).toLocaleString();

Produit dans ce format => 9/4/2021, 11:14:14 AM

3voto

Roman Points 1983

Ma variante ES6 produit une chaîne de caractères comme ceci 2020-04-05_16:39:45.85725. N'hésitez pas à modifier l'instruction return pour obtenir le format dont vous avez besoin :

const getDateStringServ = timestamp => {

  const plus0 = num => `0${num.toString()}`.slice(-2)

  const d = new Date(timestamp)

  const year = d.getFullYear()
  const monthTmp = d.getMonth() + 1
  const month = plus0(monthTmp)
  const date = plus0(d.getDate())
  const hour = plus0(d.getHours())
  const minute = plus0(d.getMinutes())
  const second = plus0(d.getSeconds())
  const rest = timestamp.toString().slice(-5)

  return `${year}-${month}-${date}_${hour}:${minute}:${second}.${rest}`
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X