Est-ce que quelqu'un sait comment je peux prendre une datetime
valeur de type de données MySQL , telle que YYYY-MM-DD HH:MM:SS
l'analyser ou la convertir pour qu'elle fonctionne dans la Date()
fonction JavaScript , par exemple: - Date ('AAAA, MM, JJ, HH, MM, SS);
Je vous remercie!
Réponses:
Certaines des réponses données ici sont soit trop compliquées, soit ne fonctionneront tout simplement pas (du moins, pas dans tous les navigateurs). Si vous prenez du recul, vous pouvez voir que l'horodatage MySQL a chaque composante de temps dans le même ordre que les arguments requis par le
Date()
constructeur.Tout ce dont vous avez besoin est une séparation très simple sur la chaîne:
Avertissement correct: cela suppose que votre serveur MySQL génère des dates UTC (ce qui est la valeur par défaut, et recommandé s'il n'y a pas de composant de fuseau horaire de la chaîne).
la source
var d = new Date("2010-06-09 13:12:01");
. Bien que cela soit intéressant, Chrome n'a aucun problème avec cela.new Date(Date.UTC(...))
c'est mieux, mais cela suppose que mysql utilise utc ... de toute façon cela doit être considéré avant cela peut être considéré comme une réponse correcte.Pour ajouter à l'excellente réponse Andy E, une fonction d'usage courant pourrait être:
De cette façon, étant donné une date / heure MySQL sous la forme
"YYYY-MM-DD HH:MM:SS"
ou même la forme courte (seule date),"YYYY-MM-DD"
vous pouvez faire:la source
new Date(Date.UTC(...))
autrement la réponse est fausse jusqu'à 24 heures ...Je pense que j'ai peut-être trouvé un moyen plus simple, que personne n'a mentionné.
Une colonne MySQL DATETIME peut être convertie en un horodatage unix via:
Nous pouvons créer un nouvel objet JavaScript Date en utilisant le constructeur qui nécessite des millisecondes depuis l'époque. La fonction unix_timestamp renvoie les secondes depuis l'époque, nous devons donc multiplier par 1000:
La valeur résultante peut être utilisée directement pour instancier un objet Date Javascript correct:
J'espère que cela t'aides.
la source
Une doublure pour les navigateurs modernes (IE10 +):
Et juste pour le plaisir, voici un one-liner qui fonctionnera sur les anciens navigateurs (maintenant corrigé):
la source
Les versions récentes de JavaScript liront une date au format ISO8601, donc tout ce que vous avez à faire est de changer l'espace en un `` T '', en effectuant l'une des opérations suivantes:
la source
Pour ajouter encore plus à la solution de Marco. J'ai prototypé directement sur l'objet String.
De cette façon, vous pouvez accéder directement à:
la source
Il existe un moyen plus simple, la chaîne d'horodatage sql:
Le format le plus proche de l'horodatage pour Date () à recevoir est le suivant, alors remplacez l'espace vide pour "T":
Ensuite, créez l'objet de date:
résultat serait l'objet de date:
la source
De la réponse d'Andy , pour AngularJS - Filtre
la source
la source
Tout d'abord, vous pouvez donner à l'objet Date (classe) JavaScript la nouvelle méthode 'fromYMD ()' pour convertir le format de date YMD de MySQL au format JavaScript en divisant le format YMD en composants et en utilisant ces composants de date:
Vous pouvez maintenant définir votre propre objet (fonction dans le monde JavaScript):
et maintenant vous pouvez simplement créer une date à partir du format de date MySQL;
la source
Vous pouvez utiliser l'horodatage unix pour diriger:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Ensuite, récupérez epoch_time dans JavaScript, et c'est une simple question de:
var myDate = new Date(epoch_time * 1000);
La multiplication par 1000 est due au fait que JavaScript prend des millisecondes et UNIX_TIMESTAMP donne des secondes.
la source
Une recherche rapide dans Google a fourni ceci:
Source: http://snippets.dzone.com/posts/show/4132
la source
Pourquoi ne pas faire ça:
la source