2014-12-08 7 views
2

У меня есть формат даты, как этотПреобразовать Дата и пользовательский формат в JavaScript

2014-11-18T20:50:01.462Z 

мне нужно преобразовать в пользовательский формат, как «20:50 2014-18-11» с использованием даты Javascript функции

мне нужен результат, как

20:50 2014-18-11 

Как получить это, спасибо заранее :)

+0

() Что результат вы получили с вашими попытками до сих пор? –

+0

Я получаю 02:20 2014-18-11, но мне нужно показать результат, как 20:50 2014-18-11 – ManoharSingh

ответ

3

Предполагая, что вы можете включить новые библиотеки в свой проект, я настоятельно рекомендую moment.js (лицензия MIT) вместо того, чтобы писать это самостоятельно. Он решает проблемы, такие как нулевое дополнение и т. Д. Для вас.

Пример

<script src="http://momentjs.com/downloads/moment.min.js"></script> 
<script> 
// Use an existing date object 
var date = new Date("2014-11-18T20:50:01.462Z"); 
console.log(moment(date).format('HH:mm YYYY-DD-MM')); 

// or use string directly 
console.log(moment.utc("2014-11-18T20:50:01.462Z").format('HH:mm YYYY-DD-MM')); 
</script> 

записка момент по умолчанию будет использовать текущую временную зону для вывода, это может быть изменено с помощью зоны функции

console.log(moment.utc("2014-11-18T20:50:01.462Z").zone(0).format('HH:mm YYYY-DD-MM')); 
console.log(moment.utc("2014-11-18T20:50:01.462Z").zone('UTC+05:30').format('HH:mm YYYY-DD-MM')); 

Выход

20:50 2014-18-11 
+0

Спасибо. За ваш ответ я получаю результат, как 02:20 2014-11-19. Получается ли результат «20:50 2014-18-11»? – ManoharSingh

+0

В какой часовой зоне вы находитесь? – Adam

+0

Мой часовой пояс GMT (IST - стандартное время Индии) – ManoharSingh

0
Date.prototype._padding = function(v, w) { 
    var f = "0000" + v; 
    return ("0000" + v).substr(f.length-w, f.length) 
} 

Date.prototype.MyDateString = function() { 
    return this._padding(this.getUTCHours(), 2) + ":" + this._padding(this.getUTCMinutes(), 2) + " " + this.getUTCFullYear() + "-" + this._padding(this.getUTCDate(), 2) + "-" + this._padding((this.getUTCMonth() + 1), 2); 

} 
console.log(new Date('2014-11-18T20:50:01.462Z').MyDateString()) 
console.log(new Date('2014-11-08T02:05:01.462Z').MyDateString()) 

getUTCMonth return 10, так как месяц основан на 0.

+0

Это может привести к выходу, например, 1: 1 2014-25-12, потому что он не равен нулю. Минуты – Adam

+0

@Adam Хорошая добыча! Я исправил. – xiaowl

0

Используйте этот Demo JsFiddler

var d = new Date, 
     dformat = [ d.getHours().padLeft(), d.getMinutes().padLeft()].join(':') 
         + ' ' + 
        [d.getFullYear(), d.getDate().padLeft(), (d.getMonth()+1).padLeft()].join('-') 
        ; 
1

Try момент JS его очень хороший плагин, чтобы играть вокруг даты и времени

так все, что вам нужно сделать, это импортировать момент JS и поставить эту строку в ваших JS код с помощью moment.js также поможет вам в будущем для вашего кода

moment.utc("2014-11-18T20:50:01.462Z").format("HH:mm YYYY-DD-MM") 
Смежные вопросы