技法79 (◐‿◑) 获得指定月份的天数
本帖最后由 不二如是 于 2017-11-11 11:52 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
分析:
通过计算某个月份的天数可以完成很多与日期结合的需求,例如:通过程序可以计算员工当月实际的工作天数、计算2月份天数判断是平年还是闰年等。
如何获取指定日期的天数呢?对于Js特性了解不是很深的鱼油,会想到很复杂的算法。
这次分享一个很棒的玩法。
Code:
HTML:
<h2>获取指定日期所在月份的天数</h2>
<p id='getMonthDays1'>2017年1月:</p>
<p id='getMonthDays2'>2017年2月:</p>
JS:
<script type="text/javascript">
window.onload = function(){
//日期格式化成字符串====================start
function dateFormat(){
Date.prototype.format = function(f){
//获取对象中的日期
var date = {
"Y" : this.getFullYear(),//获取年
"M" : (this.getMonth() + 1),//获取月
"D" : this.getDate(),//获取日
"h" : this.getHours(),//获取小时
"m" : this.getMinutes(),//获取分钟
"s" : this.getSeconds()//获取秒
},
d = "",//初始化接受日期变量的对象
r = false,//判断是否存在待替换的字符
reg = null,//正则
_d = "";//日期
for(d in date){//过滤日期标示符
//判断是否有待格式化的字符
reg = new RegExp("[" + d + "]{1,}", "g");
r = reg.test(f);
if(r)//验证是否存在
{
_d = date;//被替换的日期
f = f.replace(reg, _d < 10 ? ("0" + _d) : _d);
}
}
return f;
}
}
dateFormat();
//获取指定日期所在月份的天数
function getMonthDays(Y, M){
//Y代表年份;M 代表为月数0~11,月份加1,但是第3个参数为0,所以不+1;第3个参数要求最小为1,但是设置0,就变成M月的最后一天了
return new Date(Y, M, 0).getDate();
}
//获取指定日期所在月份的天数====================start
document.getElementById("getMonthDays1").innerHTML = "2017年1月:" + getMonthDays("2017", "1") +"天";
document.getElementById("getMonthDays2").innerHTML = "2017年2月:" + getMonthDays("2017", "2") +"天";
};
</script>
请按照自己的理解订正对概念的认知
代码说明(秀智商){:10_256:} :
**** Hidden Message *****
回顾:
技法78 (◐‿◑) 获取日期的任意部分
源代码:
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
如果喜欢,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif 希望自己能有智商{:5_91:} 查看一下 {:10_327:} 8639638 没看懂啊 a211827754 发表于 2018-9-20 16:25
没看懂啊
看懂了 这道题和你的 dataFormate() 没关系啊 {:5_102:} 1 1
页:
[1]