百度前端技术学院-基础-day25-27
倒数开始 滴答滴 滴答滴
task1
题目:
我们现在来做一个最简单的时钟,通过小练习来学习 Date,复习定时,然后再练习一下函数的封装
具体需求如下:
- 在页面中显示当前日期及时间,按秒更新
- 格式为 YYYY 年 MM 月 DD 日 星期 D HH:mm:ss
- 注意位数的补齐,比如:
-- 假设时间为2008年10月10日星期一的12点12分12秒,显示2008年10月10日星期一 12:12:12
-- 假设时间为2008年1月1日星期一的3点2分2秒,显示2008年01月01日星期一 03:02:02
编码过程中,我们希望你注意对函数的封装,尽量让一个函数就做一个事情,而不要把所有的功能、代码揉在一起:
- 封装一个函数,来根据某个日期返回这一天是星期几
- 封装一个函数,把月、日、小时等出现个位数的情况前面补充0,补充为两位,比如1变为01
- 封装一个函数,把最后的日期时间,按照要求的格式进行包装
- 可能不止上面这些,尽可能地进行功能的解耦和拆解
task2
完成上面需求后,现在需求做一些小的变更
- 输出格式变为:2008-10-10 Monday 07:10:30 PM
把上面代码中函数简单改一下即可:
1 function showDate(){ 2 var disDate; 3 disDate = today.getFullYear() + '-'; 4 disDate += today.getMonth() + '-'; 5 disDate += today.getDate() + ' '; 6 return disDate; 7 } 8 9 function showDay(){ 10 var week = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 11 return week[today.getDay()]; 12 } 13 14 function showTime(){ 15 var h,m,s,half; 16 h = today.getHours(); 17 if (h>12){ 18 h -= 12; 19 half = 'PM' 20 }else{ 21 half = '
task3
题目:
有一堆Select用于选择日期和时间,在选择后,实时在 id 为 result-wrapper 的 p 标签中显示所选时间和当前时间的差值。
1 <select id="year-select"> 2 <option value="2000">2000</option> 3 <option value="2001">2001</option> 4 <option value="2002">2002</option> 5 …… 6 <option value="2032">2002</option> 7 </select> 8 9 <select id="month-select"> 10 <option value="1">1</option> 11 <option value="2">2</option> 12 …… 13 <option value="12">12</option> 14 </select> 15 16 <select id="day-select"> 17 <option value="1">1</option> 18 <option value="2">2</option> 19 …… 20 <option value="31">31</option> 21 </select> 22 23 <select id="hour-select"> 24 <option value="0">00</option> 25 <option value="1">01</option> 26 …… 27 <option value="23">23</option> 28 </select> 29 30 <select id="minite-select"> 31 <option value="0">0</option> 32 <option value="1">1</option> 33 …… 34 <option>59</option> 35 </select> 36 37 <select id="second-select"> 38 <option value="0">0</option> 39 <option value="1">1</option> 40 …… 41 <option>59</option> 42 </select> 43 44 <p id="result-wrapper">现在距离 2001年1月1日星期X HH:MM:SS 还有 X 天 X 小时 X 分 X 秒</p>
- 使用上方的HTML结构(可以根据需要自行微调)为基础编写JavaScript代码
- 当变更任何一个select选择时,更新 result-wrapper 的内容
- 当所选时间早于现在时间时,文案为 现在距离 "所选时间" 已经过去 xxxx
- 当所选时间晚于现在时间时,文案为 现在距离 "所选时间" 还有 xxxx
- 注意当前时间经过所选时间时候的文案变化
- 注意选择不同月份的时候,日期的可选范围不一样,比如1月可以选31天,11月只有30天,注意闰年
- 同样,需要注意,通过优雅的函数封装,使得代码更加可读且可维护