2010-07-12 7 views
1
d.getTime().toString().search(/Wed/i) 

Je ne comprends pas ... typeof renvoie la chaîne, et si je copie et colle "Wed Jul 14 2010 15:35:53 GMT-0700 (PST)" et l'enregistrer à la var str et faire str.search(/Wed/i) il renvoie 0 mais quand je le fais comme ci-dessus je reçois toujours -1, même tho, comme je l'ai dit, il renvoie une chaîne de typeof.Pourquoi est-ce retournant -1 en JavaScript

Des idées pour vérifier si Wed est dans cette str? Juste pour référence, je suis en boucle à travers 7 jours, vérifiant pour Mer, si c'est mer, j'enregistrer la date actuelle et sortir de la boucle. Si vous connaissez un meilleur moyen, faites le moi savoir. En ce moment im juste faire un while(x<=6)

Répondre

9

getTime sur un Date renvoie le nombre de millisecondes depuis le 1er Janvier 1970, donc ne contiendra pas la chaîne 'Wed'.

Peut-être que vous vouliez dire d.toString().search(/Wed/i) à la place?

Si d est une instance de Date, puis une meilleure façon de vérifier si elle est un mercredi serait de tester si le résultat de getDay est 3:

d.getDay() == 3 
+0

Wow, im un idiot, je vous remercie. Je savais que ... une longue journée de travail avec des numéros JS apparemment :) –

+0

Pour info, je vais corriger cela dans un instant ... je dois attendre 7 minutes ... –

+0

Merci, bonh, changer à 3. Vous rock –

1

La raison pour laquelle il renvoie -1 est que "Mer" n'apparaîtra jamais dans votre chaîne, car "getTime()" renvoie un grand nombre: le nombre de millisecondes depuis l'époque. Appeler "toString()" sur ce grand nombre renvoie toujours un grand nombre, avec les chiffres formatés comme une chaîne, comme dans "1278975122089". Il ne retourne pas la date et l'heure, comme dans "Mon Jul 12 15:49:59 PDT 2010".

La méthode getTime() renvoie le nombre de millisecondes depuis minuit du 1er Janvier 1970, et la date spécifiée.

Essayez d'utiliser les éléments suivants à la place, sans l'appel getTime():

d.toString().search(/Wed/i) 
Questions connexes