Мне нужно вывести текущее время UTC в виде строки в следующем формате: YYYY/mm/dd hh:m:sec
Как мне добиться этого с помощью Javascript?
Мне нужно вывести текущее время UTC в виде строки в следующем формате: YYYY/mm/dd hh:m:sec
Как мне добиться этого с помощью Javascript?
Вы можете создать его вручную:
var m = new Date();
var dateString = m.getUTCFullYear() +"/"+ (m.getUTCMonth()+1) +"/"+ m.getUTCDate() + " " + m.getUTCHours() + ":" + m.getUTCMinutes() + ":" + m.getUTCSeconds();
и чтобы заставить две цифры на требуемые значения, вы можете использовать что-то вроде этого:
("0000" + 5).slice(-2)
Что будет выглядеть так:
var m = new Date();
var dateString =
m.getUTCFullYear() + "/" +
("0" + (m.getUTCMonth()+1)).slice(-2) + "/" +
("0" + m.getUTCDate()).slice(-2) + " " +
("0" + m.getUTCHours()).slice(-2) + ":" +
("0" + m.getUTCMinutes()).slice(-2) + ":" +
("0" + m.getUTCSeconds()).slice(-2);
console.log(dateString);
С форматом даты jQuery:
$.format.date(new Date(), 'yyyy/MM/dd HH:mm:ss');
https://github.com/phstc/jquery-dateFormat
наслаждаться
str = (new Date()).toISOString().slice(0, 19).replace(/-/g, "/").replace("T", " ");
Он использует встроенную функцию Date.toISOString()
, Date.toISOString()
мс, заменяет дефисы косыми чертами и заменяет T на пробел, чтобы перейти от, скажем, '2019-01-05T09:01:07.123'
к '2019/01/05 09:01:07'
.
now = new Date();
const offsetMs = now.getTimezoneOffset() * 60 * 1000;
const dateLocal = new Date(now.getTime() - offsetMs);
str = dateLocal.toISOString().slice(0, 19).replace(/-/g, "/").replace("T", " ");
Не проверено, но что-то вроде этого:
var now = new Date();
var str = now.getUTCFullYear().toString() + "/" +
(now.getUTCMonth() + 1).toString() +
"/" + now.getUTCDate() + " " + now.getUTCHours() +
":" + now.getUTCMinutes() + ":" + now.getUTCSeconds();
Конечно, вам нужно будет отложить часы, минуты и секунды до двух цифр, или иногда вы будете получать странные взгляды, такие как "2011/12/2 19: 2: 8."
Я написал простую библиотеку для манипулирования объектом дат в JavaScript. Вы можете попробовать это:
var dateString = timeSolver.getString(new Date(), "YYYY/MM/DD HH:MM:SS.SSS")
Библиотека здесь: https://github.com/sean1093/timeSolver
Проводка другого решения script DateX (автор) для любого заинтересованного
DateX НЕ обертывает исходный объект Date
, но вместо этого предлагает идентичный интерфейс с дополнительными методами для легкого форматирования, локализации, анализа, разграничения и проверки дат. Таким образом, можно просто сделать new DateX(..)
вместо new Date(..)
или использовать утилиты lib как date или даже в качестве оболочки или замены вокруг класса Date
.
Используемый формат даты идентичен php date format.
c-like format также поддерживается (хотя и не полностью)
для опубликованного примера (YYYY/mm/dd hh:m:sec
) используемый формат будет Y/m/d H:i:s
например
var formatted_date = new DateX().format('Y/m/d H:i:s');
или
var formatted_now_date_gmt = new DateX(DateX.UTC()).format('Y/m/d H:i:s');
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC