У меня свидание с форматом Sun May 11,2014
. Как я могу преобразовать это в 2014-05-11
использование JavaScript?
function taskDate(dateMilli) {
var d = (new Date(dateMilli) + '').split(' ');
d[2] = d[2] + ',';
return [d[0], d[1], d[2], d[3]].join(' ');
}
var datemilli = Date.parse('Sun May 11,2014');
console.log(taskDate(datemilli));
Код выше дает мне тот же формат даты sun may 11,2014
. Как я могу это исправить?
javascript
date
formatting
date-format
time-format
user3625547
источник
источник
Ответы:
Ты можешь сделать:
Пример использования:
Вывод:
Демонстрация по JSFiddle: http://jsfiddle.net/abdulrauf6182012/2Frm3/
источник
'use strict';
@bhspencerПросто используйте встроенный
toISOString
метод, который переводит вашу дату в формат ISO 8601:Где yourDate - это ваш объект даты.
Редактировать: какой-то парень написал это для обработки часового пояса в комментариях:
источник
new Date(yourDateStr).toISOString().split('T')[0]
const offset = yourDate.getTimezoneOffset(); yourDate = new Date(yourDate.getTime() + (offset*60*1000)); yourDate.toISOString().split('T')[0]
это должно решить проблему часового поясаnow.toISOString().substring(0,10);
Это более чистая альтернатива, так как она напоминает вам, чтоYYYY-MM-DD
это первые десять символов полного формата iso+ (offset
a- (offset
)Я использую этот способ, чтобы получить дату в формате гггг-мм-дд :)
источник
var todayDate = new Date(2018, 3 - 1, 26); todayDate.toISOString().slice(0, 10);
дает мне"2018-03-25"
. По другой системеvar todayDate = new Date(2018, 3 - 1, 26, 17, 0, 0); todayDate.toISOString().slice(0, 10);
выдает меня"2018-03-27"
.Самый простой способ конвертировать вашу дату в формат гггг-мм-дд, это сделать это:
Как это работает:
new Date("Sun May 11,2014")
преобразует строку"Sun May 11,2014"
в объект даты, который представляет времяSun May 11 2014 00:00:00
в часовом поясе на основе текущей локали (настройки хост-системы)new Date(date.getTime() - (date.getTimezoneOffset() * 60000 ))
преобразует вашу дату в объект даты, который соответствует времениSun May 11 2014 00:00:00
в UTC (стандартное время), вычитая смещение часового пояса.toISOString()
преобразует объект даты в строку ISO 86012014-05-11T00:00:00.000Z
.split("T")
разбивает строку на массив["2014-05-11", "00:00:00.000Z"]
[0]
занимает первый элемент этого массивадемонстрация
источник
- (date.getTimezoneOffset() * 60000 )
Бит должен устранить любые различия часовых пояса, в том числе влияния перехода на летнее время.Результат:
источник
eval
.return ((v.length > 1 ? "0" : "") + z[v.slice(-1)]).slice(-2);
Сочетание некоторых из ответов:
источник
toISOString()
потенциальные ловушки часового пояса при использовании этой функции.Если у вас нет ничего против использования библиотек, вы можете просто использовать библиотеку Moments.js следующим образом:
источник
Просто используйте это:
Просто и мило;)
источник
toISOString()
предполагает, что ваша дата - местное время и преобразует ее в UTC. Вы получите неверную строку даты.Следующий метод должен вернуть то, что вам нужно.
Источник: https://blog.justin.kelly.org.au/simple-javascript-function-to-format-the-date-as-yyyy-mm-dd/
источник
Получить год, месяц и день, а затем собрать их вместе. Прямо, просто и точно.
источник
Вы можете использовать
toLocaleDateString('fr-CA')
наDate
объектеТакже я узнал, что эти локали дают правильный результат из этого списка локалей. Список всех локалей и их короткие коды?
Показать фрагмент кода
источник
Чтобы учесть часовой пояс, этот однострочник должен быть хорош без какой-либо библиотеки:
источник
Вы можете попробовать это: https://www.npmjs.com/package/timesolver
Используйте это в своем коде:
Вы можете получить строку даты, используя этот метод:
источник
Ни один из этих ответов не удовлетворил меня. Я хотел кроссплатформенное решение, которое дало бы мне день в местном часовом поясе без использования каких-либо внешних библиотек.
Вот что я придумал:
Это должно вернуть день даты, в формате ГГГГ-ММ-ДД, в часовом поясе с указанием даты.
Так, например,
localDay(new Date("2017-08-24T03:29:22.099Z"))
вернется,"2017-08-23"
хотя это уже 24-е в UTC.Вам нужно будет заполнить Date.prototype.toISOString, чтобы он работал в Internet Explorer 8, но он должен поддерживаться везде.
источник
Date.js отлично подходит для этого.
источник
Я предлагаю использовать что-то вроде formatDate-js вместо того, чтобы пытаться повторять это каждый раз. Просто используйте библиотеку, которая поддерживает все основные действия strftime.
источник
или
Попробуй это!
источник
Вот один из способов сделать это:
источник
источник
источник
источник
Несколько из предыдущего ответа были в порядке, но они не были очень гибкими. Я хотел что-то, что действительно могло бы справиться с большим количеством крайних случаев, поэтому я взял ответ @orangleliu и расширил его. https://jsfiddle.net/8904cmLd/1/
Пример использования:
источник
Это помогло мне получить текущую дату в нужном формате (ГГГГММДД ЧЧ: ММ: СС):
источник
Библиотека не нужна
Просто чистый JavaScript.
Пример ниже показывает последние два месяца с сегодняшнего дня:
источник
PHP совместимый формат даты
Вот небольшая функция, которая может принимать те же параметры, что и функция PHP,
date()
и возвращать строку даты / времени в JavaScript.Обратите внимание, что поддерживаются не все параметры формата date () из PHP. Вы можете расширить
parts
объект, чтобы создать отсутствующий формат-токенСуть
Вот суть с обновленной версией
formatDate()
функции и дополнительными примерами: https://gist.github.com/stracker-phil/c7b68ea0b1d5bbb97af0a6a3dc66e0d9источник
Еще одна комбинация ответов. Приятно читаемый, но немного длинный.
источник
Если дата должна быть одинаковой во всех часовых поясах, например, представляет какое-то значение из базы данных, то обязательно используйте UTC-версии дня, месяца, полностью годичных функций в объекте даты JavaScript, так как это будет отображаться во времени UTC и Избегайте ошибок в определенных часовых поясах.
Еще лучше использовать библиотеку дат Moment.js для такого рода форматирования.
источник
Я изменил ответ Самита Сатпута следующим образом:
источник
Отформатируйте и найдите максимальную и минимальную дату из данных хэш-карты:
источник
Переформатирование строки даты довольно просто, например,
источник