web-dev-qa-db-fra.com

Format de date et heure

J'ai beaucoup de dates dans la première colonne du format affiché par IFTTT :

August 23, 2010 at 11:01PM

Existe-t-il un moyen de les formater de manière à ce que je puisse ensuite les utiliser pour les calculs de date et d’heure?

Idéalement, la fonction ne prendra qu'une colonne supplémentaire.

7
jamesmstone

J'utilise cette formule pour convertir les valeurs date-heure IFTTT dans un format utile:

=VALUE(SUBSTITUTE(A1, " at ", " "))

Où A1 est la cellule contenant la chaîne de date

Cela vous donne un nombre décimal que vous pouvez formater comme "Date Time".

9
Roman

La fonction personnalisée suivante transformera la notation de date sous forme de chaîne en notation de date:

Code

function myDate(range) {
  var output = [];  
  for(var i=0, iLen=range.length; i<iLen; i++) {
    var rSplit = range[i][0].split(" "), corr = 0;
    if(rSplit[4].substring(5,7) == "PM") {
      corr = 10;
    }   
    var month = parseInt(new Date(Date.parse(rSplit[0]+"1,2013")).getMonth());
    var day = parseInt(rSplit[1].replace(/,/g, ""));
    var year = parseInt(rSplit[2]);
    var hour = parseInt(rSplit[4].substring(0,2))+corr;
    var min = parseInt(rSplit[4].substring(3,5),10);    
    var nDate = new Date(year, month, day, hour, min);
    output.Push([nDate]);
  } 
  return output;
}

Remarque

Une correction est apportée pour tenir compte de AM/PM. Pas de correction pour GMT. Ajoutez ce script via le menu Tools de la feuille de calcul et sélectionnez Script editor. Enregistrez le script et vous êtes prêt à partir!

Usage

myDate(A1:A4)

Exemple

J'ai créé un exemple de fichier pour vous: chaîne date à date

2
Jacob Jan Tuinstra