2016-12-19 3 views
2

Почему первая дата недействительна? Я не понимаю.jQuery неверная ошибка даты

https://jsfiddle.net/r4dgjdn6/1/

$(document).ready(function() { 

    alert(new Date('19.12.2016 14:00')); 
    alert(new Date('12.12.2016 14:00')); 

}); 

Я хочу, чтобы вычислить разницу дат, но я продолжаю получать Invalid ошибку Date.

+0

Есть ли девятнадцатый месяц? – j08691

+0

О, я вижу сейчас ... я в Германии, и мы пишем сначала день, а затем месяц! – lewis4u

+0

@ lewis4u К сожалению, вы должны принять с помощью Javascript, что (нелогичный и явно неправильный ;-) формат американской даты является обязательным! – lonesomeday

ответ

3

Вы можете использовать библиотеку http://momentjs.com/ и использовать его как это:

var a = moment('19.12.2016 14:00', 'DD.MM.YYYY mm:ss'); 
var b = moment('12.12.2016 14:00', 'DD.MM.YYYY mm:ss'); 

//to calculate the diff 
a.diff(b); 
+0

не работает https://jsfiddle.net/pxxLzdvf/2/ – lewis4u

+0

Вы попробовали это в скрипке ?? – lewis4u

+0

проблема в том, что у меня уже есть формат ввода, такой как «DD.MM.YYYY mm: ss», и мне нужно разобрать его как дату. Но как? – lewis4u

2

, потому что 'дата' конструктор может получить конкретный "формат даты" в качестве параметров

, например:

alert(new Date('Mon Dec 19 2016 14:00:00')); 

посмотрите на это:

http://www.w3schools.com/js/js_dates.asp

EDIT:

если он всегда в этом формате Вы можете использовать этот «быстрый» код для разбора вашей строки в нужный формат:

var inputString = '19.12.2016 14:00'; 
var tmpArray = inputString.split('.'); 
var result = tmpArray[1] + "-" + tmpArray[0] + "-" + tmpArray[2].split(' ')[0] + " " + tmpArray[2].split(' ')[1]; 
alert(new Date(result)); 
+0

и для разницы между датами взглянуть на это: http://stackoverflow.com/questions/7763327/how-to-calculate-date-difference-in-javascript –

+0

ok и как я могу разобрать дату из моего поля ввода, если это значение точно так же, как в моем вопросе '19.12.2016 14: 00' – lewis4u

+0

moment.js - это мой ответ – lewis4u

Смежные вопросы