如何在JavaScript中获取当前年份的第一天?

57

我需要 JavaScript 代码来获取一年中的第一天。例如,对于今年,它将是2013年1月1日。

对于明年,它应该是2014年1月1日。因此,基本上就是当前年份的第一天。


答案在这里:https://dev59.com/e2oy5IYBdhLWcg3wCp3Q - Popnoodles
2
你的意思是一月一号是星期几? - Ja͢ck
4
所以基本上你需要找到这一年的日期?因为我很确定01/01总是第一天。除非你要找的是星期几? - George
var targetDate = new Date(); targetDate.setDate(1);// 这样你就可以看到我们创建的日期 console.log(targetDate); - Ilyas karim
非常简单:let date = new Date(new Date().getFullYear(), 0, 1); - Mike Gledhill
显示剩余2条评论
5个回答

172
创建一个新的Date实例获取当前日期,使用getFullYear从中获取年份,并创建一个带有该年份、0(一月)月份和1日的Date实例:
var d = new Date(new Date().getFullYear(), 0, 1);

1
这是最好的答案。 - Michael Paccione
请在“d”之前添加“var”,因为“var”只有三个字符,所以我无法编辑它。 - Benisburgers
2
这个解决方案给出了上一年的最后一天 2019-12-31T23:00:00.000Z。这个代码给出了第一天:new Date(new Date().getFullYear(), 0, 1, 1) - sunwarr10r
@WatermelonSugar:示例中的代码会生成本地时区的日期,但是您展示了一个UTC日期,因此差异可能来自于您如何显示日期。 - Guffa

13

var year = 2013;

var date = new Date(year, 0, 1);

console.log(date); // Tue Jan 01 2013 00:00:00 GMT+0100 (Mitteleuropäische Zeit)

您可以使用 new Date(YEAR,MONTH,DAY) 构造日期。
因此,给构造函数传递所需的年份和第一个月份的第一天,即可获得您的日期对象。 请注意,日期对象从0开始计数月份,因此1月== 0。

5
尝试这个:

试试这个:

var timestmp = new Date().setFullYear(new Date().getFullYear(), 0, 1);
var yearFirstDay = Math.floor(timestmp / 86400000);
var day = new Date(yearFirstDay);
alert(day.getDay());

注意:该代码返回数字,因此 Sunday 是 0,Monday 是 1,以此类推。

2
var d = new Date(2013, 0, 1).getDay(); //0 is January for some reason

alert(d);

0

看看这个fiddle

year = prompt("Enter year : ");

d = new Date(year, 0,1);

var myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];

alert("First Day is " + myDays[d.getDay()]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接