0

我有两个日期选择器字段(telerik,不是 jquery UI),还有一个单选按钮列表,其中包含周、月、年等按钮。

用户可以使用两个日期选择器选择一个日期范围,或者,他们可以单击其中一个单选按钮,并且应根据他们的选择填充字段。

所以如果用户选择星期,结束日期应该是今天,开始日期应该是 7 天前。

我目前拥有的是这样的:

 $(function () {
        $("#dateRange_week").click(function () {
            var now = new Date();
            var startDate = now;
            $("#StartDate").val(startDate);
            $("#EndDate").val(now);
        });
    });

目前 jQuery 插入的日期是格式如下的字符串

Tue Oct 02 2012 12:08:01 GMT-0400 (Eastern Daylight Time)
  • 如何将 startDate 计算为现在 - 7 天?
  • 如何将日期格式化为 mm/dd/yyyy?

编辑_ _ _

修复:按照下面接受的答案使用 Date.js,jQuery 变为

        $("#dateRange_week").click(function () {
            var startDate = (7).days().ago();
            var start = startDate.toString("M/d/yyyy");
            var endDate = new Date();
            var end = endDate.toString("M/d/yyyy");
            $("#StartDate").val(start);
            $("#EndDate").val(end);
        });
4

3 回答 3

1

很遗憾,但是 JS 没有很好的日期时间操作能力。
好消息 - 你可以为此使用一些插件。
例如:

它们(和许多其他)都具有添加/减去日期和日期格式的功能。以及许多其他有用的选项。

于 2012-10-02T16:44:40.477 回答
0

这是格式化 jQuery 日期的良好开端jQuery 日期格式化

这可能有助于减去天 数从日期中添加/减去天数不会正确更改年/月

于 2012-10-02T16:25:50.330 回答
0

尝试类似:

DateTime dtNow = DateTime.Now;
DateTime dtBegin = DateTime.MinValue;
DateTime dtEnd = DateTime.MinValue;
dtBegin = dtNow.AddDays(1 - Convert.ToDouble(dtNow.DayOfWeek));
dtEnd = dtNow.AddDays(7 - Convert.ToDouble(dtNow.DayOfWeek));

要格式化 mm/DD/yyyy,请使用 .ToShortDateString()

于 2012-10-02T16:27:24.630 回答