я пытаюсь преобразовать строку в формате дд-мм-гггг в объект даты в JavaScript, используя следующее:
var from = $("#datepicker").val();
var to = $("#datepickertwo").val();
var f = new Date(from);
var t = new Date(to);
("#datepicker").val()
содержит дату в формате дд-мм-гггг. Когда я делаю следующее, я получаю «Неверная дата»:
alert(f);
Это из-за символа «-»? Как я могу преодолеть это?
javascript
date
user559142
источник
источник
Ответы:
Разделить на "-"
Разобрать строку на нужные вам части:
Используйте регулярное выражение
Почему бы не использовать регулярные выражения?
Потому что вы знаете, что будете работать над строкой, состоящей из трех частей, разделенных дефисами.
Однако, если вы искали эту же строку в другой строке, регулярным выражением будет путь.
Повторное использование
Поскольку вы делаете это более одного раза в вашем примере кода, и, возможно, где-нибудь в вашей базе кода, заключите его в функцию:
Используя как:
Или, если вы не возражаете против jQuery в вашей функции:
Используя как:
Современный JavaScript
Если вы можете использовать более современный JS, деструктуризация массива также подойдет:
источник
пример регулярного выражения:
источник
/
- это разделитель и год, состоящий из 2 цифр (или любого числа больше 1):replace( /(\d{2})[-/](\d{2})[-/](\d+)/, "$2/$1/$3")
new Date( "23. 2. 15".replace( /(\d+)[^d]+(\d+)[^d]+(\d+)/, "$2/$1/$3") );
Другая возможность:
Сопоставьте цифры и измените их порядок
источник
var date = new Date(numbers[2], numbers[1]-1, numbers[0]);
Используя пример moment.js :
источник
источник
$.datepicker.parseDate("dd-mm-yy", from);
для правильного разбора даты, например24-01-2017
, документацию chek datepickerВы также можете написать дату в скобках
Date()
объекта, например:источник
Используйте этот формат:
myDate = new Date('2011-01-03'); // Mon Jan 03 2011 00:00:00
источник
parseDate
функцию? Это нативная функция JavaScript?'2011-01-03'
и время UTC00:00:00
. Так что, если часовой пояс пользователя меньше UTC, то на самом деле это будет днем раньше.В моем случае
Результат: понедельник, 02 ноября 2015 04:40:13 GMT + 0100 (CET), затем я использую .getTime () для работы с миллисекундами.
источник
В принятом ответе есть ошибка
Подумайте, содержит ли указатель даты «77-78-7980», что, очевидно, не является действительной датой. Это приведет к:
Что, вероятно, не желаемый результат.
Причина этого объясняется на сайте MDN :
Лучший способ решить проблему:
Это дает вам возможность обрабатывать неверный ввод.
Например:
источник
Вы можете использовать внешнюю библиотеку, чтобы помочь вам.
http://www.mattkruse.com/javascript/date/source.html
Также смотрите это: Разобрать строку DateTime в JavaScript
источник
Посмотрите на Datejs для всех этих мелких проблем, связанных с датой. Вы можете решить это с помощью функции parseDate.
источник
Вы можете использовать регулярное выражение.
источник
просто, просто передайте свою дату js Date Object
источник
new Date('30/12/2018').toLocaleDateString()
?? Это возвращает