Кто-нибудь знает, как я могу принять datetime
значение типа данных MySQL , например, YYYY-MM-DD HH:MM:SS
и либо проанализировать его, либо преобразовать его для работы в Date()
функции JavaScript , например: - Дата ('ГГГГ, ММ, ДД, ЧЧ, ММ, СС);
Спасибо!
Ответы:
Некоторые из приведенных здесь ответов либо слишком сложны, либо просто не будут работать (по крайней мере, не во всех браузерах). Если вы сделаете шаг назад, вы увидите, что метка времени MySQL имеет каждый компонент времени в том же порядке, что и аргументы, требуемые для
Date()
конструктором.Все, что нужно, - это очень простое разбиение строки:
Справедливое предупреждение: предполагается, что ваш сервер MySQL выводит даты UTC (это значение по умолчанию и рекомендуется, если в строке нет компонента часового пояса).
источник
var d = new Date("2010-06-09 13:12:01");
, Хотя интересно, у Chrome с этим проблем нет.new Date(Date.UTC(...))
это лучше, но это предполагает, что mysql использует utc ... в любом случае это должно быть считается, что до этого можно считать правильным ответом.Чтобы добавить к отличному ответу Andy E, функция общего использования может быть:
Таким образом, учитывая дату / время MySQL в форме
"YYYY-MM-DD HH:MM:SS"
или даже краткую форму (только дату),"YYYY-MM-DD"
вы можете сделать:источник
new Date(Date.UTC(...))
другой мудрый ответ, неправильный до 24 часов ...Я думаю, что, возможно, нашел более простой способ, который никто не упомянул.
Столбец MySQL DATETIME можно преобразовать в метку времени Unix с помощью:
Мы можем создать новый объект JavaScript Date, используя конструктор, который требует миллисекунд с начала эпохи. Функция unix_timestamp возвращает секунды с начала эпохи, поэтому нам нужно умножить на 1000:
Полученное значение можно использовать непосредственно для создания экземпляра правильного объекта Date Javascript:
Надеюсь это поможет.
источник
Один лайнер для современных браузеров (IE10 +):
И просто для удовольствия, вот одна строка, которая будет работать в старых браузерах (теперь исправлена):
источник
В последних версиях JavaScript будет считываться дата в формате ISO8601, поэтому все, что вам нужно сделать, это изменить пространство на «Т», выполнив что-то вроде одного из следующих:
источник
Чтобы добавить еще дальше к решению Марко. Я прототипировал непосредственно к объекту String.
Таким образом, вы можете перейти непосредственно к:
источник
Существует более простой способ, строка времени sql:
Ближайший формат к метке времени для получения Date () следующий, поэтому замените пробел на «T»:
Затем создайте объект даты:
Результатом будет объект даты:
источник
Из ответа Энди , для AngularJS - Фильтр
источник
источник
Сначала вы можете дать объекту Date (классу) JavaScript новый метод fromYMD () для преобразования формата даты YMD в MySQL в формат JavaScript путем разделения формата YMD на компоненты и использования этих компонентов даты:
Теперь вы можете определить свой собственный объект (функция в мире JavaScript):
и теперь вы можете просто создать дату из формата даты MySQL;
источник
Вы можете использовать метку времени Unix для направления:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Затем добавьте epoch_time в JavaScript, и это просто вопрос:
var myDate = new Date(epoch_time * 1000);
Умножение на 1000 объясняется тем, что JavaScript занимает миллисекунды, а UNIX_TIMESTAMP - секунды.
источник
Быстрый поиск в Google обеспечил это:
Источник: http://snippets.dzone.com/posts/show/4132
источник
Почему бы не сделать это:
источник