Первый, 2013-12-24
, признается как первая часть строки даты ISO-8601, и поскольку он не имеет связанного с ним времени или часового пояса, он анализируется как UTC.
Второй вариант не определен и зависит от механизма браузера/JS для синтаксического анализа. В вашем случае он, по-видимому, анализирует его как строку даты в США, но использует ваш часовой пояс вместо UTC. Вы можете больше узнать о форматированных форматах даты на MDN Page for Date.parse.
Если вы можете, просто придерживайтесь первого, так как это стандарт. Второй пример может даже не работать в разных локалях, но я не могу сказать точно. Если вам действительно нужен произвольный синтаксический анализ даты, вы можете захотеть использовать библиотеку, поскольку она очень сложна и не покрывается стандартным JS. Может быть, что-то вроде datejs?
Я получаю «2013-12-24T00: 00: 00.000Z» и «2013-12-24T05: 00: 00.000Z». – elclanrs