这是 JavaScript 中的有效日期吗?

Is this a valid date in JavaScript?

我的函数returns选择日历的日期,格式如下:

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()];

我只想要这个日期的星期几的名称。

你有什么建议吗?

日期格式还从 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)

您可以使用 Date.parse() API.

验证日期字符串

但是请注意,此 API 的验证有点宽松,因为它接受 ISO 8601RFC 2822 日期格式。如果它是一个有效的 date 那么 API returns 你就是 epoch time 然后可以用来创建 Javascript Date 对象。否则它 returns NaN.

至于获得 day - 你可以使用 .getDay() API.

示例:

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