2016-09-20 5 views
-1

Мне нужно преобразовать дату в формат mm-dd-yyyy. Таким образом, я использовал метод, как это:JavaScript Date() отличается при изменении часового пояса

var dt=new Date(2016-06-21); 

var ddte=''; 

ddte=(("0" + (dt.getMonth() + 1)).slice(-2))+"-"+(("0" + dt.getDate()).slice(-2))+"-"+dt.getFullYear(); 

Он отлично работает в моей временной зоне (GMT+05:30). Но когда я изменяю свой часовой пояс на GMT -5:00, он дает неправильный результат: 06-20-2016. В результате я хочу 06-21-2016.

  1. Может кто-нибудь объяснить проблему?

  2. Как я могу получить правильный результат?

  3. Это ошибка?

+1

вар DT = новый Дата ('2016-06-21'); вместо даты (2016-06-21). Синтаксис отсутствует. – ADarnal

+0

Как изменить часовой пояс? – Yoshiya

+0

Почему это ошибка? Вероятно, в этот часовой пояс находится текущий день. – Laurianti

ответ

1

Ваша дата, прошедшая до Date(), будет обрабатываться как часовой пояс UTC. Получив время с Date.getMonth(), вы получите местный часовой пояс. Вероятно, вы ищете Date.getUTCMonth().

var dt=new Date("2016-06-21"); 
 

 
var ddte=''; 
 

 
ddte=(("0" + (dt.getUTCMonth() + 1)).slice(-2))+"-"+(("0" + dt.getUTCDate()).slice(-2))+"-"+dt.getUTCFullYear(); 
 

 
console.log(ddte);

Хотя в данном случае я не вижу никакой пользы для использования Date вообще; это должно быть достаточно:

var parsedDate = "2016-06-21".replace(/(\d{4})-(\d{2})-(\d{2})/, "$2-$3-$1"); 
 
console.log(parsedDate);

0

Это не ошибка. Это то, как работают часовые пояса (это не тот же день календаря во всем мире в одно и то же время).

Если вы на самом деле не хотите расширенные функции даты (кажется, вам нужны только хорошие старые манипуляции с строкой), мой совет - просто не использовать Date в первую очередь.

var parts = "2016-06-21".split("-"); 
var mdy = parts[1] + "-" + parts[2] + "-" + parts[0]; 

Добавить проверку ошибок, и все готово.

+0

Не знаю, почему голос, это разумный ответ. – RobG

+0

@RobG Не волнуйся, я, наверное, разозлил кого-то другим вопросом. С вчерашнего дня у меня были некоторые странные понижения. –

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