Формат даты в jQuery - PullRequest
       1

Формат даты в jQuery

9 голосов
/ 29 января 2012
var date = "Fri Jan 29 2012 06:12:00 GMT+0100";

Как я могу показать это в формате 2012-01-29 06: 12 ? В PHP есть функция -> формат. В Javascript также есть формат, но если я попробую использовать это, то у меня ошибка:

now.format не является функцией

var now = new Date();
console.log(now.format("isoDateTime"));

http://jsfiddle.net/6v9hD/

Я хотел бы получить формат: 2012-01-29 06: 12

Ответы [ 6 ]

23 голосов
/ 29 января 2012

Этот вопрос является дубликатом (см .: Как получить текущую дату в jquery? ).

Изменив мое решение из другого вопроса, я получил:

var d = new Date();

var month = d.getMonth()+1;
var day = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();

var output = d.getFullYear() + '-' +
    ((''+month).length<2 ? '0' : '') + month + '-' +
    ((''+day).length<2 ? '0' : '') + day + ' ' +
    ((''+hour).length<2 ? '0' :'') + hour + ':' +
    ((''+minute).length<2 ? '0' :'') + minute + ':' +
    ((''+second).length<2 ? '0' :'') + second;

См. Этот jsfiddle для доказательства: http://jsfiddle.net/nCE9u/3/

Вы также можете заключить его в функцию (демо здесь: http://jsfiddle.net/nCE9u/4/):

function getISODateTime(d){
    // padding function
    var s = function(a,b){return(1e15+a+"").slice(-b)};

    // default date parameter
    if (typeof d === 'undefined'){
        d = new Date();
    };

    // return ISO datetime
    return d.getFullYear() + '-' +
        s(d.getMonth()+1,2) + '-' +
        s(d.getDate(),2) + ' ' +
        s(d.getHours(),2) + ':' +
        s(d.getMinutes(),2) + ':' +
        s(d.getSeconds(),2);
}

и используйте его так:

getISODateTime(new Date());

или

getISODateTime(some_other_date);

РЕДАКТИРОВАТЬ: Я добавил некоторые улучшения в функцию, предложенные Ates Goral (также уменьшил ее удобочитаемость в пользу комментариев кода).

6 голосов
/ 29 января 2012

Datejs . toString ('гггг-ММ-дд ЧЧ: мм') должны выполнить трюк

3 голосов
/ 29 января 2012

Используйте библиотеку, такую ​​как Datejs или, возможно, реализация размером с твит:

https://gist.github.com/1005948

var str = formatDate(
    new Date(),
    "{FullYear}-{Month:2}-{Date:2} {Hours:2}:{Minutes:2}");
3 голосов
/ 29 января 2012

К сожалению, в Javascript у Date нет метода format ().

Проверьте http://fisforformat.sourceforge.net для некоторых хороших методов форматирования.

0 голосов
/ 14 апреля 2017

Вы можете использовать что-то вроде этого (включая date.js ):

Date.parse(yourDate).toISOString();

, поэтому дата будет иметь формат ISO 8601.

0 голосов
/ 22 августа 2013

Я думаю, что это может вам помочь: date.format.js

var now = new Date();
now.format("m/dd/yy");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// Saturday, June 9th, 2007, 5:46:21 PM
// You can use one of several named masks
now.format("isoDateTime");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...