Преобразуйте дату MySQL в дату JavaScript

Спасибо за все Ваши ответы! Вы скала парней:)

Теперь моя обратная связь не так проста как Ваша:

Да, для один проект (как в 'одной развернутой программе и работающий самостоятельно на единственной производственной платформе'), я предполагаю, что можно пойти все технические на мне:

  • специализированные 'объекты' Ретривера Журнала, которые могут быть передачей в обертку Регистратора, только звоня toString () необходимы
  • используемый в сочетании с входом функция variadic (или простой объект [] массив!)

и там у Вас есть он, как объяснено @John Миллисемьей и @erickson.

Однако эта проблема вынудила нас думать немного о, 'Почему точно мы регистрировались во-первых?'
Наш проект является на самом деле 30 различными проектами (5 - 10 человек каждый) развернутый на различных производственных платформах с потребностями асинхронной передачи и центральной шинной архитектурой.
простой вход, описанный в вопросе, был хорошо для каждого проекта вначале (5 лет назад), но с тех пор, мы должны повыситься. Войдите KPI.

Вместо того, чтобы просить к регистратору регистрировать что-либо, мы просим к автоматически созданному объекту (названный KPI) регистрировать событие. Это - простой вызов (myKPI.I_am_signaling_myself_to_you ()) и не должно быть условным выражением (который решает 'искусственное увеличение цикломатической сложности' проблема).

, Что объект KPI знает, кто называет его и так как он работает с начала приложения, он в состоянии получить много данных, мы были ранее вычислительными на месте, когда мы регистрировались.
Плюс это объект KPI может контролироваться независимо и вычислять/публиковать по требованию свою информацию о единственной и отдельной шине публикации.
Тот путь, каждый клиент может запросить информацию, которую он на самом деле хочет (как, 'мой процесс начался, и если да, с тех пор когда?'), вместо того, чтобы искать корректный файл журнала и держать для загадочной Строки...

Действительно, вопрос, 'Почему точно мы регистрировались во-первых?' заставили нас понять, что мы не регистрировались только для программиста и его модульных или интеграционных тестов, но для намного более широкого сообщества включая некоторые сами заключительные клиенты. Наш механизм 'создания отчетов' должен был быть централизован, асинхронный, 24/7.

определенное из этого механизм KPI является выходом из объема этого вопроса. Достаточно сказать его надлежащая калибровка безусловно, передает, единственная самая сложная нефункциональная проблема, с которой мы сталкиваемся. Это все еще приносит систему на своем колене время от времени! Правильно калиброванный однако, это - спаситель.

Снова, спасибо за все предложения. Мы рассмотрим их для некоторых частей нашей системы, когда простой вход будет все еще на месте.
, Но другая точка этого вопроса должен был проиллюстрировать Вам определенную проблему в намного большем и более сложном контексте.
Hope Вам понравился он. Я мог бы задать вопрос на KPI (который, верьте или нет, не находится ни в каком вопросе на SOF до сих пор!) позже на следующей неделе.

я оставлю на виду этот ответ для голосования до следующего вторника, тогда я выберу ответ (не этот, очевидно;))

20
задан Mike Valstar 19 November 2009 в 19:13
поделиться

3 ответа

Учитывая ваше пояснение, что вы не можете изменить формат входящей даты, вам потребуется что-то вроде этого:

var dateParts = isoFormatDateString.split("-");
var jsDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2].substr(0,2));

Исходный ответ:

Есть ли причина, по которой вы не можете получить метку времени вместо строки даты? Это можно сделать примерно так:

 SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;

Затем введите epoch_time в JavaScript, и это просто:

var myDate = new Date(epoch_time * 1000);

Умножение на 1000 происходит потому, что JavaScript занимает миллисекунды, а UNIX_TIMESTAMP дает секунды.

44
ответ дан 29 November 2019 в 22:32
поделиться

Метка времени UNIX (миллисекунды с 1 января 1970 г.) была бы моим предпочтительным выбором.

Вы можете передать ее как целое число и использовать JS setTime ( ) для создания из него объекта JS Date.

2
ответ дан 29 November 2019 в 22:32
поделиться

Вы можете разделить дату '-' в качестве разделителя и использовать этот конструктор:

var d = new Date(Y, M - 1, D);
0
ответ дан 29 November 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: