Как Chrome, так и Node используют V8, но дают разные результаты? [Дубликат]

<?php
      $username = $_POST['username'];
       $password = $_POST['password'];

     $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".mysql_real_escape_string($username)."'")or die(mysql_error());
while($row=mysql_fetch_array($result))
  {
 echo $row['FirstName'];
 }
 ?>
5
задан Kreker 14 October 2015 в 09:47
поделиться

2 ответа

Это просто поведение консоли отладки. Два значения даты, которые вы указали, одинаковы и являются правильными значениями. Вы просто видите местное время в Chrome, в то время как Firefox предпочитает показывать время UTC в консоли отладки.

Более точно, Chrome, IE и большинство других браузеров просто вызывают .toString() на объекте , в то время как Firefox вызывает .toISOString().

Обратите внимание, что Firefox имеет ошибку, показывающую неправильное имя часового пояса (вместо стандартного вместо Daylight), но вы можете увидеть, что значение отладчика соответствует значению UTC ISO8601.

4
ответ дан Matt Johnson 5 September 2018 в 08:25
поделиться

ЕСЛИ вы не хотите, чтобы смещение временной зоны было включено, вы можете использовать Date.UTC

Примечание: если Date вызывается как конструктор с несколькими аргументами, указанные аргументы представляют местное время. Если требуется UTC, используйте новую дату (Date.UTC (...)) с теми же аргументами.

~ MDN

Выход из Firefox dev console:

> new Date(2015,9,1)
  Date 2015-09-30T22:00:00.000Z  // reproduces your problem, my local time is GMT+0200
> new Date(Date.UTC(2015,9,1))
  Date 2015-10-01T00:00:00.000Z // UTC time

Однако 00:00:00 GMT+0200 и 22:00:00.000Z - это просто разные способы представления смещения часового пояса в строчном представлении даты. Разница заключается в методе, используемом при печати на консоль: большинство браузеров используют .toString(), а Firefox использует .toISOString(). (Отредактировано: ранее было указано, что реализации метода toString отличаются друг от друга, что неверно).

В методах Chrome (Thu Oct 01 2015 00:00:00 GMT+0200) и Firefox (Date 2015-09-30T22:00:00.000Z), таких как .getDate() и .getMonth() возвращают одинаковые значения (1 и 9 соответственно). Объекты Date одинаковы.

4
ответ дан pawel 5 September 2018 в 08:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: