Проблема с функцией Даты JavaScript в IE 7, NaN возвратов

У меня есть канал Твиттера, и я создаю новую дату obj, таким образом, я могу отформатировать дату к своей симпатии.

var created = new Date(this.created_at) работы в Firefox и хроме, но не в IE7. Я, кажется, испытываю затруднения при передаче даты через new Date() функция. Это просто возвращается неопределенный и NaN.

Вот код. При попытке проверить его, не забывают включать jQuery.Спасибо.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Twitter Test</title>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" >

$(function(){
$.getJSON("http://twitter.com/statuses/user_timeline/google.json?count=1&callback=?", function(data){
    $.each(data, function(){
        var created = new Date(this.created_at)
        $("<div></div>").append("<ul><li>Unformatted: " + this.created_at + "</li><li>Formatted: " + created + "</li></ul>").appendTo("body")
    });

})  

})

</script>
</head>

<body>
</body>
</html>
18
задан superwhatever 14 July 2010 в 05:18
поделиться

1 ответ

Убедитесь, что дата обрабатывается как UTC, потому что в противном случае javascript интерпретирует ее как дату в вашем часовом поясе.

Дата выглядит так: Вт 13 июля 23:18:36 +0000 2010

Вы можете проанализировать ее следующим образом:

function parseDate(str) {
  var v=str.split(' ');
  return new Date(Date.parse(v[1]+" "+v[2]+", "+v[5]+" "+v[3]+" UTC"));
} 

Что даст правильную дату / время в местном часовом поясе, для пример: Tue Jul 13 2010 19:18:36 GMT-0400 (EDT)

Таким образом, ваш код должен выглядеть примерно так:

$(function(){
  $.getJSON("http://twitter.com/statuses/user_timeline/google.json?count=1&callback=?", function(data){
    $.each(data, function(){
      var created = parseDate(this.created_at);
      $("<div></div>").append("<ul><li>Unformatted: " + this.created_at + "</li><li>Formatted: " + created + "</li></ul>").appendTo("body");
    });
  });
  function parseDate(str) {
    var v=str.split(' ');
    return new Date(Date.parse(v[1]+" "+v[2]+", "+v[5]+" "+v[3]+" UTC"));
  } 
});
17
ответ дан 30 November 2019 в 08:52
поделиться
Другие вопросы по тегам:

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