Как конвертировать время / дату с помощью jquery / javascript? - PullRequest
1 голос
/ 08 июня 2011

У меня сейчас есть

last_modified = xhr.getResponseHeader('Last-Modified');

/* Last-Modified: Wed, 06 Apr 2011 20:47:09 GMT */

Однако для плагина timeago мне нужен этот формат

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

Какой самый простой и пуленепробиваемый способ конвертации?

Ответы [ 3 ]

7 голосов
/ 08 июня 2011

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

Для титульной части:

    var dateObj = new Date(last_modified);
    var newDate = dateObj .getFullYear() + "-" + dateObj.getMonth() + "-" + dateObj.getDate() + "T" + dateObj.getHours() + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds() + "Z"; 

Для "17 июля 2008 г.":

    var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var dateObj = new Date(last_modified);
    var anotherDate = m_names[dateObj.getMonth()] + " " + dateObj.getDate() + ", " + dateObj.getFullYear(); 
0 голосов
/ 08 июня 2011
// Some browsers can natively return an ISO date string, but a lot cannot.
// And some insist on adding the milliseconds to the string-
// '2011-04-06T20:47:09.000Z'

    function isoString(date){
        var A, T, D= new Date(date);
        if(D){
        // uncomment next line if you allow msecs in string
        // if(D.toISOString) return D.toISOString();
            A= [D.getUTCFullYear(), D.getUTCMonth(), D.getUTCDate(),
            D.getUTCHours(), D.getUTCMinutes(), D.getUTCSeconds()];
            A[1]+= 1;
            for(var i= 0; i<6; i++)
            if(A[i]<10) A[i]= '0'+A[i];
            T= A.splice(3, A.length);
            return A.join("-")+("T" + T.join(":")+ "Z");
        }
        // throw 'bad date';
    }

var str = 'Ср, 06 апреля 2011 20:47:09 GMT';

isoString (str) возвращаемое значение: (String) 2011-04-06T20: 47: 09Z

0 голосов
/ 08 июня 2011

Посмотрите на date.js .Может быть немного больше, чем нужно, но это потрясающая библиотека.Код должен выглядеть примерно так:

last_modified = xhr.getResponseHeader('Last-Modified');
last_modified_date = last_modified.split(': ')[1];
date = Date.parse(last_modified_date);
date.toString("yyyy-MM-ddTHH:mm:ssZ")

РЕДАКТИРОВАТЬ: @Hasan указал, что собственный объект Date способен анализировать текст заголовка.Для этой простой задачи это, вероятно, лучший вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...