Почему это возвращает -1 в JavaScript - PullRequest
1 голос
/ 13 июля 2010
d.getTime().toString().search(/Wed/i)

Я не понимаю ... typeof возвращает строку, и если я скопирую и вставлю «Ср 14 июля 2010 15:35:53 GMT-0700 (PST)» и сохраню ее в var str и делать str.search(/Wed/i) он возвращает 0, но когда я делаю это, как указано выше, я всегда получаю -1, хотя, как я уже сказал, он возвращает строку typeof.

Любые идеи, как проверить, если среданаходится в этой строке?

Просто для справки, я перебираю 7 дней, проверяю СР, если он сброшен, я сохраняю текущую дату и вырываюсь из цикла.Если вы знаете лучший способ, дайте мне знать.Прямо сейчас я просто делаю while(x<=6)

Ответы [ 2 ]

9 голосов
/ 13 июля 2010

getTime для Date возвращает количество миллисекунд с 1 января 1970 года, поэтому не будет содержать строку 'Wed'.

Возможно, вы имели в виду d.toString().search(/Wed/i) вместо этого?

Если d является экземпляром Date, то лучшим способом проверить, является ли среда, было бы проверить, равен ли результат getDay 3:

d.getDay() == 3
1 голос
/ 13 июля 2010

Причина, по которой он возвращает -1, заключается в том, что «Wed» никогда не появится в вашей строке, потому что «getTime ()» возвращает большое число: количество миллисекунд с начала эпохи.) "на этом большом числе все еще возвращает большое число с цифрами, отформатированными в виде строки, как в" 1278975122089 ".Он НЕ возвращает дату и время, как в «Пн Июл 12 15:49:59 PDT 2010».

Метод getTime () возвращает количество миллисекунд с полуночи 1 января 1970и указанную дату.

Попробуйте использовать следующее вместо вызова getTime ():

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