-使用window.prompt生成一个对话框,要求用户键入他/她的生日。
-编写一个函数来查找用户生日的工作日。
-用一句话回应用户,告诉用户他/她的生日的工作日(工作日名称)。例:"你出生在星期三。"
-脚本应包括必要的数据验证。当用户提供的日期不是有效日期时,适当地对用户做出响应。(但是,允许未来日期。)
我不知道该怎么做。。我现在有这个。。。。所有这些对我来说都是告诉我我出生在2月12日,也就是星期四。我不太确定从哪里开始。我需要做什么样的函数才能工作???
var bday;
bday = window.prompt("When is your birthday?","");
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday', 'Friday', 'Saturday']
var currentTime = new Date();
var currentDay = currentTime.getDay();
var currentDayName= days[currentDay];
document.write("You were born on "+currentDayName);
试试这样的东西:
var bday;
bday = window.prompt("When is your birthday (YYYY-MM-DD)?","");
var bdayArray = bday.split('-');
//validation
if(bdayArray.length !== 3){
alert("invalid Date");
}else{
if(!bdayArray[0].match(/^dddd$/) ||
!bdayArray[1].match(/^dd$/) ||
!bdayArray[2].match(/^dd$/)){
alert("invalid Date");
}else{
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday', 'Friday', 'Saturday'];
var currentTime = new Date(
parseInt(bdayArray[0]),
parseInt(bdayArray[1]) - 1, //month starts from 0
parseInt(bdayArray[2])
);
var currentDay = currentTime.getDay();
var currentDayName= days[currentDay];
document.write("You were born on "+currentDayName);
}
}
您还可以使用momentjs使日期操作更加简单。
我不会为你写作业,但这通常是你想做的:
- 获取用户的生日
- 创建日期设置为该生日的
new Date
对象 - 使用日期对象的
getDay
方法 - 将表示一周中某一天的数字转换为该天的实际字符串
您需要一个函数来获取用户输入并将其转换为Date对象。你可以手动制作,但如果你搜索更多,你就会知道这个功能已经在网络浏览器中实现了。
请查看此MDN文档,了解如何从字符串生成Date对象。关于Date.parse()的文档也可能对您有所帮助。