提问前,先确定是:
自己无法独立解决,已经做过很多尝试
搜索引擎没有满意答案(google 起码过四页)
本站站内搜索不到满意答案
自己解决问题的独立性一定要培养出来,多做尝试以避免其他人在你的问题上可能浪费的时间,同时请不要轻易放弃 Google。
SegmentFault帮助中心:1. 提问时该注意的事项,什么样的问题才是受欢迎的
补充:
楼主提供了一种经典算法,适用于各种语言。
我再提供一种基于JavaScript Date对象的思路供参考:
将输入的时间作为终止时间,前一年的最后一天作为起始时间。两者做差,计算出间隔时间。
var endDate = new Date(y, m-1, d),
startDate = new Date(y, 0, 0),
days = (endDate - startDate) / 1000 / 60 / 60 / 24;
document.write("该天为一年中的第"+ days +"天");
用moment.js
或
var d1 = new Date(“20161111”);
var d2 = new Date(d1.getFullyear());
var day = 3600000 * 24;
var res = parseInt((d1-d2)/day);
这还用问,自己算也不复杂呀,程序员的价值是在于解决问题,不是让别人给你解决问题。
言归正传,给你个简单的思路,可能不是最简单的,没细想,别太较真。
1,年份算是否是闰年,确认2月份的天数
2,得到每个月的天数,可以放数组里
3,根据月份得到当前月份的天数
4,根据日期加3得到的天数就ok了。
程序员一定要多动脑!!!
var now = new Date();//输入日期以今日为例
var NewYearsDay = new Date(now.getFullYear(), 0, 0, 0, 0, 0);//该年第一天
console.log((now.getTime()-NewYearsDay.getTime())/86400000>>>0)//算出两者的时间戳之差就是时间差的微秒数 再用时间差除以天的微秒数86400000 取整 就是第几天
8 回答4.1k 阅读✓ 已解决
6 回答2.5k 阅读✓ 已解决
5 回答2.3k 阅读✓ 已解决
5 回答5.8k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
3 回答2.1k 阅读
4 回答2.6k 阅读✓ 已解决
我找到的结合自己思考的结果
以后会多百度,之前浪费谁时间了在此say-sorry