Это правильная дата в JavaScript? [Дубликат]

1

моя функция возвращает выбранную дату календаря в этом формате:

var returnValue = "6.7.2017"; //day.month.year

Когда я пытаюсь использовать его для новой даты, он не работает:

var weekdays = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
var wkdayname = new Date(returnValue); //Error: returnValue ist NaN
var dayName = weekdays[wkdayname.getDay()];

Все, что я хочу, это просто имя дня недели этой даты.

У вас есть какие-нибудь предложения?

  • 2
    должен спросить: вы вернули returnValue ? потому что new Date('6.7.2017') кажется, работает
  • 0
    Это работает нормально. Дата поддерживает формат, который вы предоставляете. Можете ли вы поделиться своим кодом?
Показать ещё 3 комментария
Теги:
date
weekday

2 ответа

0
Лучший ответ

Формат даты также имеет день и месяц, перешедшие из формата, который распознает Date(). Эта функция преобразует строку даты с использованием . и первые записи даты в допустимый формат:

function transformDate (date){
	var day_month_year = date.split(".")
    return [day_month_year[1],day_month_year[0],day_month_year[2]].join("/")
} 

var returnValue = "6.7.2017"; //This is a string

var weekdays = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
var wkdayname = new Date(transformDate(returnValue)); 
var dayName = weekdays[wkdayname.getDay()];
alert(dayName)
  • 0
    это решение прекрасно работает в Firefox! Спасибо!
  • 0
    Есть много-много дубликатов. Вы должны избегать парсера полностью, использование встроенного парсера чревато. Разбор строки для форматирования другой строки, которая анализируется встроенным синтаксическим анализатором, не имеет большого смысла. Просто проанализируйте строку и передайте детали конструктору Date.
Показать ещё 1 комментарий
0

Вы можете проверить строку даты с помощью API Date.parse().

Но помните, что эта проверка API немного свободна, так как она принимает форматы даты ISO 8601 или RFC 2822. Если это действительная date тогда API возвращает вам время epoch time которое затем можно использовать для создания объекта Date Javascript. В противном случае он возвращает NaN.

Что касается получения day - вы можете использовать API .getDay().

Пример:

if (Date.parse("aaabbcc")) {
    console.log("aaabbcc is Valid");
}
else {
    console.log("aaabbcc is invalid");
}

if (Date.parse("6.7.2017")) {
    var date = new Date(Date.parse("6.7.2017"));
    console.log("6.7.2017 is Valid");
    console.log("The day of the week is => " + date.getDay());
}
else {
    console.log("6.7.2017 is invalid");
}

Ссылки: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

  • 0
    Смотрите совет во второй ссылке: « Не рекомендуется использовать Date.parse… По-прежнему существует много различий в том, как разные хосты анализируют строки даты, поэтому строки даты должны анализироваться вручную ».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню