Javascript дата-время выпуска - преобразование в utc - PullRequest
0 голосов
/ 10 января 2020

Моя база данных имеет значение

2020-03-08 20: 44: 00

Но в javascript. Он отображает

Пн. 09.09 2020 09:44:00 GMT + 0800 (стандартное время Сингапура)

Хотите, чтобы я отображал на интерфейсе пользователя

2020-03-08 20:44:00

или

2020-03-08

Есть ли способ удалить часовой пояс и получить только фактическое значение из базы данных.

Ответы [ 6 ]

2 голосов
/ 10 января 2020

toISOString - неправильный способ получить дату в DateTime. Пожалуйста, следуйте приведенному ниже методу, чтобы получить дату от DateTime.

var date = new Date("2020-03-08 20:44:00");
var year = date.getFullYear();
var month = (1 + date.getMonth()).toString();
month = month.length > 1 ? month : '0' + month;
var day = date.getDate().toString();
day = day.length > 1 ? day : '0' + day;
var newDate = year + '-' + month + '-' + day;

console.log("Date plush time - "+date);
console.log("Only Date - "+newDate);
0 голосов
/ 10 января 2020

Если вы можете использовать библиотеку, используйте момент. js

https://momentjs.com/docs/# / displaying /

moment("2020-03-08 20:44:00").format("YYYY-MM-DD");

или

moment(new Date("2020-03-08 20:44:00")).format("YYYY-MM-DD");

Может даже изменить время на ut c

https://momentjs.com/guides/# / parsing / local-ut c -zone /

moment.utc("2020-03-08 20:44:00").format("YYYY-MM-DD");

надеюсь, это поможет:)

0 голосов
/ 10 января 2020

Вы можете взять каждую часть даты и создать свой собственный пример формата:

let formatted_date = my_date.getFullYear() + "-" + (my_date.getMonth() + 1) + "-" + my_date.getDate()

в этом примере: my_date содержит дату, которую вы хотите отобразить.

0 голосов
/ 10 января 2020

Попробуйте это.

 let d = new Date('2020-03-08 20:44:00');
console.log(`${d.getFullYear()}-${d.getMonth() < 10 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1}-${d.getDate() < 10 ? '0' + (d.getDate()): d.getDate()}`);
0 голосов
/ 10 января 2020

Вы используете беззвучный метод .toString() объекта Date, который преобразует дату UT C (которую хранит ваша база данных) в время в текущем часовом поясе.

Если date - это переменная, которую вы получаете из своей базы данных, вы можете отформатировать ее так, как вы хотите, следующим образом:

let dateString = date.toISOString().replace('T', ' ').replace(/\..+/, '')

Это займет вашу дату, преобразовать ее в строку ISO (в форме 2020-01-10T03:09:24.551Z) и замените T пробелом и все после десятичной дроби ничем.

0 голосов
/ 10 января 2020

Вычтите смещение часового пояса в миллисекундах.

var dt = new Date('2020-03-08 20:44:00');
dt = new Date(dt.getTime()-dt.getTimezoneOffset()*60000);
console.log(dt.toUTCString());
var mo = dt.getUTCMonth()+1, d = dt.getUTCDate(), h = dt.getUTCHours();
var m = dt.getUTCMinutes(), s = dt.getUTCSeconds();
if(mo < 10)mo = '0'+mo;
if(d < 10)d = '0'+d;
if(h < 10)h = '0'+h;
if(m < 10)m = '0'+m;
if(s < 10)s = '0'+s;
console.log(dt.getUTCFullYear()+'-'+mo+'-'+d+' '+h+':'+m+':'+s);
...