2010-12-07 7 views
0
// How many days between two dates 
function gDaysBetweenDates(date1, date2) { 

    var date1_ms = date1.getTime(); 
    var date2_ms = date2.getTime(); 


    return Math.round(Math.abs(date1_ms - date2_ms)/(1000 * 60 * 60 * 24)); 

} 

date1 et date2 étant passé sont des objets de date avec des valeurs telles que:fonction Javascript non définie

Mar 9 mars 2010 00:00:00 GMT + 0000 (GMT heure normale)

J'ai un problème en essayant d'extraire l'heure, il est dit que getTime est indéfini. Lorsque je tente de créer un nouvel objet date avec les dates transmises via:

var dateNew = new Date(date1); 

Je reçois l'erreur, la date est en format non valide.

+0

'new Date ('Mar 09 Mar 2010 00:00:00 GMT + 0000 (GMT Standard Time)');' fonctionne. Vérifiez que les valeurs passées ne sont pas 'undefined' (ou toute autre chose d'ailleurs) (' alert' elles dans 'gDaysBetweenDates') – Matt

+0

Je suppose que ces valeurs sont * pas * réellement des instances de date ... – Pointy

+0

Comment la chaîne de date est générée ? Contrôlez-vous son format? –

Répondre

1

Pour le dernier problème, exécutez date1.constructor pour voir quel type d'objet date1 est. Si c'est un nombre, cela devrait fonctionner comme vous l'avez écrit. S'il s'agit d'une chaîne, vous devez vous assurer qu'elle est formatée en tant que date. Si ce n'est pas un nombre ou une chaîne, vous avez un type invalide.

En outre, assurez-vous de vérifier que date1 n'est pas null.

0

Vous semblez avoir quelques problèmes de type. Le constructeur Date n'accepte que les nombres millisecondes ou les chaînes de date, pas un objet date. L'autre erreur sonne comme si vous pensiez que quelque chose est un objet Date qui n'est en fait pas. (null? une chaîne?)

Questions connexes