Вы всегда должны вручную разобрать дату строки, библиотека может помочь, но, как правило, не является необходимым.
Формат в OP не является допустимой строкой ISO, что означает, что браузеры могут обрабатывать ее, как бы они ни желали (и Safari соответствует спецификации языка при обработке NaN, то есть недопустимой строки даты). Самый близкий ISO 8601 формат - «2016-01-11T23: 00: 00». Строки, совместимые с ISO без временной зоны, следует рассматривать как локальные.
Однако браузеры могут обрабатываться как UTC, local или NaN в зависимости от браузера. Простая функция для разбора его в качестве местного времени:
/**
* Parse an ISO string without validation
* @param {string} s - date string in format yyyy-mm-dd hh:mm:ss
* @returns {Date} parsed as a local date
*/
function parseISOSimple(s) {
var b = s.split(/\D/);
return new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5]);
}
document.write('Simple: ' + parseISOSimple('2016-01-11 23:00:00'))
@ MEF-это дубликат вопрос, но ответ есть не хороший. – RobG