输入某年某月某日,判断这一天是这一年的第几天?(JS实现)
想知道今天是一年中的第几天吗,我知道你不想,不想也得想,跟着我一起看看这个功能如何利用Javascript实现。首先一个简单的思路就是获取当前时间的时间戳与本年的第一天做减法,这个比较简单,直接上代码。
-例 1
//函数年,月,日
function getDays(year, month, date) {
//定义当前时间变量(这里月份的下标是从0~11的,所以要减1)
var d1 = new Date(year, month - 1, date)
//定义第一天的时间变量
var d2 = new Date(year, 0, 1)
//相减(时间戳)
var d = d1.getTime() - d2.getTime()
//得到的值是毫秒,转化
return d / (24 * 60 * 60 * 1000);
}
console.log(getDays(2022, 9, 7));
例 2
我们还有一种思路,就是通过创建数组存储每月的天数,然后通过循环遍历获取天数总和,跟着我的思路一起看一下吧。
1.定义函数,设置参数年,月,日
function getDays(year, month, date) {
}
2.定义年,月,日(月份的下标是从0~11的,所以要减1)
var d = new Date(year, month - 1, date)
3.计算2月份天数(二月比较特殊,闰年是29天,平年是28天,闰年的判断方法是能同时被4和100整除或者能被400整除,这里我们用到三目运算符。)
var second = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0 ? 29 : 28
4.创建数组,保存12个月的天数
var arr = [31, second, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
5.循环遍历,获取前month-1个月天数总和
for (var i = 0, sum = 0; i < month - 1; i++) {
sum += arr[i]
}
6.加本月已经过去的天数
return sum + date
7.最后我们在控制台打印
console.log(getDays(2022, 9, 7));
牛,真是一个美好而又调皮的数字
代码
function getDays(year, month, date) {
var d = new Date(year, month - 1, date)
// 计算2月份天数
var second = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0 ? 29 : 28
// 创建数组,保存12个月的天数
var arr = [31, second, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
// 循环遍历,获取前month-1个月天数总和
for (var i = 0, sum = 0; i < month - 1; i++) {
sum += arr[i]
}
// 加本月已经过去的天数
return sum + date
}
console.log(getDays(2022, 9, 7));