这是JavaScript中的有效日期吗?

时间:2017-07-31 07:12:50

标签: javascript date weekday

我的函数以这种格式返回日历的选定日期:

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 个答案:

答案 0 :(得分: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)




答案 1 :(得分:-1)

您可以使用Date.parse() API验证日期字符串。

但请注意,此API的验证有点松散,因为它接受ISO 8601RFC 2822日期格式。如果它是有效的date,则API会返回epoch time,然后可以将其用于创建Javascript Date对象。否则返回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