2

我在脚本中使用以下内容:

var startDate = new Date("10/12/2012");
var endDate = new Date("10/18/2012");

我希望使用 startDate 作为上周一和 endDate 作为上周日动态创建这些日期。我尝试了以下方法:

var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6
var startDate = new Date(curr.setDate(first)).format("m/dd/yyyy");
var endDate = new Date(curr.setDate(last)).format("m/dd/yyyy");

但由于某种原因,这不起作用 - startDate 或 endDate 变量没有输出任何内容。

任何想法我做错了什么?

4

3 回答 3

3

Javascript 日期时间对象没有格式方法。您需要使用库或自己生成字符串:

var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6
var startDate = new Date(curr.setDate(first));
startDate = "" + (startDate.getMonth() + 1) + "/" + startDate.getDate() + "/" + startDate.getFullYear();
var endDate = new Date(curr.setDate(last));
endDate = "" + (endDate.getMonth() + 1) + "/" + endDate.getDate() + "/" + endDate.getFullYear();

这是一个小提琴http://jsfiddle.net/DPQeB/2/及其输出

2012年 11 月 18 日
2012 年 11 月 24日

一个允许您格式化日期的库是jQuery UI

于 2012-11-21T12:52:20.827 回答
1

使用date.js获取上周日

Date.today().moveToDayOfWeek(0, -1); // -1 indicates to go back

最好使用库来操作日期。它会让你的生活轻松很多。

话虽如此,理解 JavaScript 中的日期有一个长期的目标。它将帮助您进行调试等工作。

于 2012-11-21T13:14:43.893 回答
0

如果从周日开始:

var today = new Date();
var sundayOfWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - today.getDay()-8);
var mondayOfWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - today.getDay()+1);

console.log( mondayOfWeek );
console.log( sundayOfWeek );
于 2016-06-07T11:05:46.963 回答