Safari Javascript Date () NaN Problème (aaaa-MM-jj HH: mm: ss)
Mon code fonctionne correctement dans Google Chrome, mais pas dans Safari.
J'ai compris que j'avais besoin de convertir yyyy-MM-dd HH:mm:ss
à ISO 8601
mais je n'ai pas trouvé une solution pour ce faire.
En Ligne Lien De Test: http://jsfiddle.net/UVgHR/
Javascript:
$(document).ready(function() {
calculateMinutes();
setInterval(calculateMinutes, 60000);
});
function calculateMinutes() {
$('.calculateMinutes').each(function () {
var diff = Math.abs(new Date( $(this).data('timestamp') ) - new Date());
var minutes = Math.floor((diff/1000)/60);
$(this).html( minutes + ' min.' );
});
}
Exemple de code HTML:
<span class="calculateMinutes" data-timestamp="2014-02-18 15:00:48">
source d'informationauteur Luciano Nascimento | 2014-02-19
Vous devez vous connecter pour publier un commentaire.
Pour faire à votre question plus facile votre problème est avec:
Ce travail correct dans chrome, mais pas dans safari. Le mdn parle ECMAScript 5 ISO-8601 soutien dit:
Si vous incluez
T
cela fonctionne:Vous pouvez utiliser
new Date('2014-02-18T15:00:48'.replace(/\s/, 'T'))
.Si vous traitez un grand nombre de cas comme cela, je recommande l'utilisation d' moment qui semble gérer ce cas très bien avec ou sans T: l'analyse de la chaîne de. En outre, l'ensemble de votre exemple est plus facile avec momentjs:
J'ai vu une question comme ça avant, et ce qui fonctionne pour moi est de remplacer l'espace entre la Date et l'Heure avec un
T
. Essayez ceci:Mis À Jour JavaScript:
JSFiddle ici.
Je pense que Jose a manqué un point ici - N'oubliez pas d'inclure Z, ou bien il sera décalage du fuseau horaire.
new Date('2014-02-18T15:00:48')
nouvelle Date('2014-02-18T15:00:48Z')
Vous pouvez utiliser
new Date('2014-02-18T15:00:48'.replace(/\s/, 'T')+'Z').
Consultez cette pour plus d'info - new Date() fonctionne différemment dans Chrome et Firefox