Выходные данные JavaScript в формате ГГГГ / мм / дд чч: м: сек - PullRequest
49 голосов
/ 03 декабря 2011

Мне нужно записать дату и время Now () в формате ГГГГ / мм / дд чч: м: сек.Это должно быть во время по Гринвичу.

Как мне добиться этого с помощью Javascript?

Ответы [ 6 ]

74 голосов
/ 03 декабря 2011

Вы можете построить его вручную:

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);
13 голосов
/ 23 марта 2014

С форматом даты jQuery:

$.format.date(new Date(), 'yyyy/MM/dd HH:mm:ss');

https://github.com/phstc/jquery-dateFormat

Наслаждайтесь

11 голосов
/ 14 января 2019

Нет библиотеки, одна строка, правильно дополнена

str = (new Date()).toISOString().slice(0, 19).replace(/-/g, "/").replace("T", " ");

Он использует встроенную функцию Date.toISOString(), отсекает мс, заменяет дефисы на косую черту и заменяет T на пробел, например, от '2019-01-05T09:01:07.123' до '2019/01/05 09:01:07'.

Местное время вместо UTC

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", " ");
1 голос
/ 16 июня 2016

Я написал простую библиотеку для манипулирования объектом дат в JavaScript.Вы можете попробовать это:

var dateString = timeSolver.getString(new Date(), "YYYY/MM/DD HH:MM:SS.SSS")

Библиотека здесь: https://github.com/sean1093/timeSolver

1 голос
/ 03 декабря 2011

Не проверено, но что-то вроде этого:

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. "

0 голосов
/ 09 декабря 2015

Публикация другого скриптового решения DateX (автор) для всех, кто заинтересован

DateX НЕ оборачивает исходный объект Date, но вместо этого предлагает идентичный интерфейс с дополнительными методами для простого форматирования, локализации, анализа, сравнения и проверки дат. Таким образом, можно просто сделать new DateX(..) вместо new Date(..) или использовать lib в качестве утилит даты или даже в качестве оболочки или замены для Date класса.

Используемый формат даты идентичен php формат даты .

c-like формат также поддерживается (хотя и не полностью)

для приведенного примера (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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...