web-dev-qa-db-fra.com

convertir la date en horodatage en javascript?

Je veux convertir la date en horodatage, mon entrée est 26-02-2012. j'ai utilisé 

new Date(myDate).getTime();

NaN .. Quelqu'un peut-il dire comment convertir cela?

117
selladurai
var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+","+myDate[0]+","+myDate[2];
alert(new Date(newDate).getTime());​ //will alert 1330192800000

Mettre à jour:

var myDate="26-02-2012";
myDate=myDate.split("-");
var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
alert(new Date(newDate).getTime()); //will alert 1330210800000

DÉMO (Testé sous Chrome, FF, Opera, IE et Safari).

146
The Alpha

Essayez cette fonction, elle utilise la méthode Date.parse () et ne nécessite aucune logique personnalisée:

function toTimestamp(strDate){
   var datum = Date.parse(strDate);
   return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));
36
Ketan Savaliya
var dtstr = "26-02-2012";
new Date(dtstr.split("-").reverse().join("-")).getTime();
22
Diode

ce code refactored le fera

let toTimestamp = strDate => Date.parse(strDate)

cela fonctionne sur tous les navigateurs modernes sauf ie8-

9
Jalasem
function getTimeStamp() {
       var now = new Date();
       return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
                     + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
                     .getSeconds()) : (now.getSeconds())));
}
5
deepakssn

Vous devez simplement inverser votre chiffre de date et changer - avec ,:

 new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)

Dans ton cas:

 var myDate="26-02-2012";
 myDate=myDate.split("-");
 new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();

P.S. La localisation anglaise n'a pas d'importance ici.

4
antonjs

Il y a deux problèmes ici… .. Premièrement, vous ne pouvez appeler getTime que sur une instance de la date. Vous devez mettre la nouvelle date entre crochets ou l’affecter à une variable.

Deuxièmement, vous devez lui passer une chaîne dans un format approprié.

Exemple de travail:

(new Date("2012-02-26")).getTime();
2
Alan Bogu

Votre chaîne ne se trouve pas dans un format tel que l'objet Date soit spécifié pour gérer . Vous devrez l’analyser vous-même, utiliser une bibliothèque d’analyse de date telle que MomentJS ou l’ancienne (et non maintenue actuellement, autant que je sache) DateJS , ou la modeler au format correct ( Par exemple, 2012-02-29) avant de demander à Date de l’analyser.

Pourquoi obtenez-vous NaN: lorsque vous demandez à new Date(...) de gérer une chaîne non valide, il renvoie un objet Date qui est défini sur une date non valide (new Date("29-02-2012").toString() renvoie "Invalid date"). L'appel de getTime() sur un objet de date dans cet état renvoie NaN.

2
T.J. Crowder
/**
 * Date to timestamp
 * @param  string template
 * @param  string date
 * @return string
 * @example         datetotime("d-m-Y", "26-02-2012") return 1330207200000
 */
function datetotime(template, date){
    date = date.split( template[1] );
    template = template.split( template[1] );
    date = date[ template.indexOf('m') ]
        + "/" + date[ template.indexOf('d') ]
        + "/" + date[ template.indexOf('Y') ];

    return (new Date(date).getTime());
}
2
Evgeniy

Pour convertir la date (ISO) en horodatage Unix , je me suis retrouvé avec un horodatage de 3 caractères plus long que nécessaire; mon année se situait donc autour de 50k ... 

Je devais le diviser par 1000: new Date('2012-02-26').getTime() / 1000

0
orszaczky

Pour ceux qui veulent avoir un horodatage lisible au format yyyymmddHHMMSS

> (new Date()).toISOString().replace(/[^\d]/g,'')              // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"

Exemple d'utilisation: une extension de fichier de sauvegarde. /my/path/my.file.js.20190220

0
allenhwkim

Les réponses ont été fournies par d'autres développeurs, mais à ma manière, vous pouvez le faire à la volée sans créer de fonction définie par l'utilisateur comme suit:

var timestamp = Date.parse("26-02-2012".split('-').reverse().join('-'));
alert(timestamp); // returns 1330214400000
0
Frederick Eze