it-roy-ru.com

Преобразовать объект даты в формат дд/мм/гггг чч: мм: сс

У меня есть объект datetime и его значение заключается в следующем

2017-03-16T17:46:53.677

Может кто-нибудь, пожалуйста, дайте мне знать, как преобразовать это в формат дд/мм/гггг чч: мм: сс Я погуглил лот и не смог найти преобразование формата для этого конкретного ввода. 

8
Rihana

Вы можете полностью отформатировать строку, как указано в других сообщениях. Но я думаю, что вам лучше использовать функции локали в объекте даты? 

var d = new Date("2017-03-16T17:46:53.677"); 
console.log( d.toLocaleString() ); 

Правка :

ISO 8601 (формат, который вы создаете) утверждает, что часовой пояс добавляется в конце с [{+|-}hh][:mm] в конце строки. 

так что вы можете сделать это:

var tzOffset = "+07:00" 
var d = new Date("2017-03-16T17:46:53.677"+ tzOffset);
console.log(d.toLocaleString());
var d = new Date("2017-03-16T17:46:53.677"); //  assumes local time. 
console.log(d.toLocaleString());
var d = new Date("2017-03-16T17:46:53.677Z"); // UTC time
console.log(d.toLocaleString());

Правка :

Точно так же вы знаете, что функция locale отображает дату и время в манере языка пользователя. и местоположение, Европейская дата dd/mm/yyyy, а США mm/dd/yyyy

var d = new Date("2017-03-16T17:46:53.677");
console.log(d.toLocaleString("en-US"));
console.log(d.toLocaleString("en-GB"));

10
corn3lius

Это то, что я использую:

function getDate() {
  var date = new Date(),
    year = date.getFullYear(),
    month = (date.getMonth() + 1).toString(),
    formatedMonth = (month.length === 1) ? ("0" + month) : month,
    day = date.getDate().toString(),
    formatedDay = (day.length === 1) ? ("0" + day) : day,
    hour = date.getHours().toString(),
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour,
    minute = date.getMinutes().toString(),
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute,
    second = date.getSeconds().toString(),
    formatedSecond = (second.length === 1) ? ("0" + second) : second;
  return formatedDay + "-" + formatedMonth + "-" + year + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond;
};

document.getElementById("date").innerHTML = getDate();
setInterval(function() {
  document.getElementById("date").innerHTML = getDate();
}, 3000);
<span id="date"></span>

Возможно, вам просто понадобится метод getDate().

9
thekodester

Вот так:

var today = new Date();
var day = today.getDate() + "";
var month = (today.getMonth() + 1) + "";
var year = today.getFullYear() + "";
var hour = today.getHours() + "";
var minutes = today.getMinutes() + "";
var seconds = today.getSeconds() + "";

day = checkZero(day);
month = checkZero(month);
year = checkZero(year);
hour = checkZero(hour);
mintues = checkZero(minutes);
seconds = checkZero(seconds);

console.log(day + "/" + month + "/" + year + " " + hour + ":" + minutes + ":" + seconds);


function checkZero(data){
  if(data.length == 1){
    data = "0" + data;
  }
  return data;
}

4
Marco Salerno

В Vanilla js вы можете использовать методы .getMonth (), .getYear и .getDate (), а затем форматировать строку по своему желанию.

Вот больше информации:

http://www.webdevelopersnotes.com/10-ways-to-format-time-and-date-using-javascript

0
Canolyb1