使用格式化日期填充文本框

时间:2012-10-02 16:22:25

标签: javascript jquery telerik

我有两个datepicker字段(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?

EDIT_的 _ _

修复: 根据下面接受的答案使用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);
        });

3 个答案:

答案 0 :(得分:1)

很可惜,但JS并没有很好的日期操作能力。
好消息 - 你可以使用一些插件。
例如:

  • Moment - 来自SO用户timrwood
  • 的非常好的插件
  • date.js - 另一个用于日期和时间操作的好插件

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

答案 1 :(得分:0)

这是格式化jQuery日期jQuery date formatting

的良好开端

这可能有助于减去天数 Adding/Subtracting days from a date doesn't change the year/month correctly

答案 2 :(得分: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()