Спасибо за все Ваши ответы! Вы скала парней:)
Теперь моя обратная связь не так проста как Ваша:
Да, для один проект (как в 'одной развернутой программе и работающий самостоятельно на единственной производственной платформе'), я предполагаю, что можно пойти все технические на мне:
и там у Вас есть он, как объяснено @John Миллисемьей и @erickson.
Однако эта проблема вынудила нас думать немного о, 'Почему точно мы регистрировались во-первых?'
Наш проект является на самом деле 30 различными проектами (5 - 10 человек каждый) развернутый на различных производственных платформах с потребностями асинхронной передачи и центральной шинной архитектурой.
простой вход, описанный в вопросе, был хорошо для каждого проекта вначале (5 лет назад), но с тех пор, мы должны повыситься. Войдите KPI.
Вместо того, чтобы просить к регистратору регистрировать что-либо, мы просим к автоматически созданному объекту (названный KPI) регистрировать событие. Это - простой вызов (myKPI.I_am_signaling_myself_to_you ()) и не должно быть условным выражением (который решает 'искусственное увеличение цикломатической сложности' проблема).
, Что объект KPI знает, кто называет его и так как он работает с начала приложения, он в состоянии получить много данных, мы были ранее вычислительными на месте, когда мы регистрировались.
Плюс это объект KPI может контролироваться независимо и вычислять/публиковать по требованию свою информацию о единственной и отдельной шине публикации.
Тот путь, каждый клиент может запросить информацию, которую он на самом деле хочет (как, 'мой процесс начался, и если да, с тех пор когда?'), вместо того, чтобы искать корректный файл журнала и держать для загадочной Строки...
Действительно, вопрос, 'Почему точно мы регистрировались во-первых?' заставили нас понять, что мы не регистрировались только для программиста и его модульных или интеграционных тестов, но для намного более широкого сообщества включая некоторые сами заключительные клиенты. Наш механизм 'создания отчетов' должен был быть централизован, асинхронный, 24/7.
определенное из этого механизм KPI является выходом из объема этого вопроса. Достаточно сказать его надлежащая калибровка безусловно, передает, единственная самая сложная нефункциональная проблема, с которой мы сталкиваемся. Это все еще приносит систему на своем колене время от времени! Правильно калиброванный однако, это - спаситель.
Снова, спасибо за все предложения. Мы рассмотрим их для некоторых частей нашей системы, когда простой вход будет все еще на месте.
, Но другая точка этого вопроса должен был проиллюстрировать Вам определенную проблему в намного большем и более сложном контексте.
Hope Вам понравился он. Я мог бы задать вопрос на KPI (который, верьте или нет, не находится ни в каком вопросе на SOF до сих пор!) позже на следующей неделе.
я оставлю на виду этот ответ для голосования до следующего вторника, тогда я выберу ответ (не этот, очевидно;))
Учитывая ваше пояснение, что вы не можете изменить формат входящей даты, вам потребуется что-то вроде этого:
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 дает секунды.
Метка времени UNIX (миллисекунды с 1 января 1970 г.) была бы моим предпочтительным выбором.
Вы можете передать ее как целое число и использовать JS setTime ( ) для создания из него объекта JS Date.
Вы можете разделить дату '-' в качестве разделителя и использовать этот конструктор:
var d = new Date(Y, M - 1, D);