2016-11-09 2 views
0

Я пытаюсь отформатировать временной поясФормат Дата Строка в momentjs

Как я могу преобразовать время JS в эти форматы?

"Чт 24 сентября 2015 14:00:00 GMT-0700 (PDT)"

"24 сентября 2015, 2:00:00 вечера UTC-07: 00"

«2015 -09-24 14:00:00 GMT-0700"

"24 сентября 2015 14:00:00 GMT-0700"

«Чт 24 сентября 2015 14:00:00 GMT-0700 (тихоокеанское летнее Время) "

Преобразование в любой из них поможет.

+1

вы пробовали вашим-я? Можете ли вы опубликовать часть своего кода, чтобы узнать, чего вам не хватает, или если есть какая-то ошибка? – Andrea

+0

Я смог получить третий, используя этот формат: '' ГГГГ-ММ-ДД ЧЧ: мм: ss zZZ "' –

+0

Хорошо, можете ли вы разместить свой код, пожалуйста? Было бы очень полезно начать с того, что вы пробовали ... – Andrea

ответ

1

Вы можете использовать токены, перечисленные в документации format, как показано в следующем фрагменте.

Используйте квадратные скобки [] добавить символы, которые должны быть экранированы (GMT и UTC в примере, если вам нужно текущая зона аббревиатура использовать z маркер).

Обратите внимание, что, как moment-timezone docs говорит:

Moment.js также крюк для названия длинной формы часового пояса. Поскольку эти строки обычно локализованы, Moment Timezone не предоставляет длинных имен для зон.

Чтобы предоставить длинные имена форм, вы можете переопределить moment.fn.zoneName и использовать токен zz.

Вы можете найти в фрагменте пример предоставления длинных имен для зон.

var time = "2016-11-09 15:38:00", zone = "America/Chicago"; 
 

 
var m = moment.tz(time,zone); 
 

 
console.log(m.format('ddd MMM D YYYY HH:mm:ss [GMT]ZZ (z)')); 
 
console.log(m.format('MMMM Do YYYY, h:mm:ss a [UTC]ZZ')); 
 
console.log(m.format('YYYY-MM-DD HH:mm:ss [GMT]ZZ')); 
 
console.log(m.format('MMM D YYYY HH:mm:ss [GMT]ZZ')); 
 

 
// Add long names for sample zones 
 
var abbrs = { 
 
    EST : 'Eastern Standard Time', 
 
    EDT : 'Eastern Daylight Time', 
 
    CST : 'Central Standard Time', 
 
    CDT : 'Central Daylight Time', 
 
    MST : 'Mountain Standard Time', 
 
    MDT : 'Mountain Daylight Time', 
 
    PST : 'Pacific Standard Time', 
 
    PDT : 'Pacific Daylight Time', 
 
}; 
 

 
moment.fn.zoneName = function() { 
 
    var abbr = this.zoneAbbr(); 
 
    return abbrs[abbr] || abbr; 
 
}; 
 

 
console.log(m.format('ddd MMM D YYYY HH:mm:ss [GMT]ZZ (zz)'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.7/moment-timezone-with-data-2010-2020.min.js"></script>

0

Я был в состоянии сделать третий, используя этот фрагмент

var time = "2016-11-09 15:38:00", 
    zone = "America/Chicago", 
    format = "YYYY-MM-DD HH:mm:ss zZZ"; 

moment.tz(time,zone).utc().format(format) 
Смежные вопросы