2015-01-07 5 views
0

У меня есть эта дата:Как мне изменить дату часового пояса, чтобы исправить локальную дату?

2015-05-28T23:00:00.000Z 

Мне нужно, чтобы преобразовать его в местную дату, которая будет (в этом формате):

29/05/2015 

я ожидал бы выше отформатирован дата, чтобы быть правильно Based в строке даты выше.

Как мне это сделать?

Спасибо

+1

think best is moment.js –

ответ

1

преобразовать его в Date объекта:

var dateString = '2015-05-28T23:00:00.000Z'; 
var date = new Date(dateString) 

то косяк его формат:

var formatedDate = date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear(); 

Но вы также можете использовать moment.js

moment(dateString).format('DD/MM/YYYY'); 
+1

Это также работает, если формат dmy не является необходимостью: 'new Date (« 2015-05-28T23: 00: 00.000Z »). ToLocaleString(). Split (',') [0] ' – surajck

+0

@surajck зачем сплит? – giannisf

+0

'split' должен был извлечь только дату. 'toLocaleString()' дает время также – surajck

0

благодарственное вы r ваши ответы.

Я получил это отформатирован, выполнив:

var d = new Date('2015-05-28T23:00:00.000Z'); 
var n = d.getDate() + '/' + (d.getMonth() +1) + '/' + d.getFullYear(); 
document.getElementById("demo").innerHTML = n; 
0

Пожалуйста, добавьте следующий код в скрипте

<script> 
    var d = new Date("2015-05-28T23:00:00.000Z"); 
    var str=d.toString(); 
     var date = new Date(str), 
    mnth = ("0" + (date.getMonth()+1)).slice(-2), 
    day = ("0" + date.getDate()).slice(-2); 
    var local_date=[ date.getFullYear(), mnth, day ].join("/"); //yyyy/mm/dd 

</script> 

Надежда это works.Thank вам

1

Это хорошо освещены в других местах, что использование конструктора Date для синтаксического анализа строк не является хорошей идеей. Формат в OP соответствует ES5 и будет корректно анализироваться современными браузерами, но не IE 8, который по-прежнему имеет значительную долю пользователей.

Синтаксический строку вручную не сложно:

function isoStringToDate(s) { 
    var b = s.split(/\D/); 
    return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6])); 
} 

Затем отформатировать:

function dateToDMY(d) { 
    function z(n){return (n<10?'0':'') + n} 
    return z(d.getDate()) + '/' + z(d.getMonth()+1) + '/' + d.getFullYear(); 
} 

console.log(dateToDMY(isoStringToDate('2015-05-28T23:00:00.000Z'))); // 29/05/2015 

Чтобы соответствовать ES5, функция синтаксического анализа следует проверить значения не выходит за пределы диапазона но если вы уверены в правильности строки, которая не должна быть необходимой.

Смежные вопросы