在Javascript中获取上周的日期

时间:2015-03-10 00:42:08

标签: javascript vb.net date momentjs

这是我的问题:

我有2个RadDatePickers,见下文:

      <telerik:RadDatePicker ID="rdpTimeOfDayFrom" runat="server" Culture="English (United States)">          
         <DateInput  runat="server" DateFormat="MM/dd/yyyy"></DateInput>  
        </telerik:RadDatePicker>  
     <telerik:RadDatePicker ID="rdpTimeOfDayTo" runat="server" Culture="English (United States)">          
         <DateInput runat="server" DateFormat="MM/dd/yyyy"></DateInput>  
    </telerik:RadDatePicker> 

通过使用JavaScript我想获得上周的日期并在rdpTimeOfDayFrom控件中设置它的格式是: 2015年3月9日星期一17:36:58 GMT-0700(太平洋夏令时)

如何使用Javascript以该格式(“yyyy / MM / dd”)设置返回日期?我之所以要问的原因是因为在我做回帖后试图获得控件的内容时,它就像那样显示: 2015年3月9日上午12:00:00,我只需要约会。

这是我的JS功能:

使用MomentJS

  function SetLastWeekDate(sender, args) {
    var lastWeekDate = $find("<%=btnTimeOfDayLastWeek.ClientID %>");
    var fromDate = $find("<%=rdpTimeOfDayFrom.ClientID %>");
    var toDate = $find("<%=rdpTimeOfDayTo.ClientID %>");
    var today = new Date();
    if (lastWeekDate.get_checked()) {
        fromDate.clear();
        toDate.clear();
        //var lastWeekPeriod = new Date(today.getFullYear(), today.getMonth(),today.getDate() - 7);
        var lastWeekPeriod = moment().subtract(7, 'd').format('l');
        fromDate.set_selectedDate(lastWeekPeriod);
        toDate.set_selectedDate(today);
    }
}

2 个答案:

答案 0 :(得分:0)

如果我理解的话,您需要将7天减去当前日期。


怎么样:


解决方案1 ​​ vanilla Javascript

var d = new Date();           // <- Get the current date
d.setDate(d.getDate() - 7);   // <- Substract 7 days

然后格式化(没有库这部分有点奇怪):

var year = d.getFullYear(),
    month = ('00' + (d.getMonth() + 1)).slice(-2),
    day = ('00' + d.getDate()).slice(-2);

var formattedDate = year + '/' + month + '/' + day;

说明:

  • d.getMonth()从零开始,因此我们必须添加一个
  • ('00' + *number*).slice(-2)用于格式化两位数字。


解决方案2

如果您经常需要对日期进行一些计算或格式化,请考虑使用像momentjs或Date.js这样的库。这将真正简化任务。例如,减去七天并使用momentjs将日期格式化为YYYY/MM/DD,如下所示:

moment().subtract(7, 'days').format('YYYY/MM/DD');


答案 1 :(得分:0)

MomentJs

很容易做到这一点
 function SetLastWeekDate(sender, args) {
    var lastWeekDate = $find("<%=btnTimeOfDayLastWeek.ClientID %>");
    var fromDate = $find("<%=rdpTimeOfDayFrom.ClientID %>");
    var toDate = $find("<%=rdpTimeOfDayTo.ClientID %>");
    var today = moment();
    if (lastWeekDate.get_checked()) {
        fromDate.clear();
        toDate.clear();
        var lastWeekPeriod = moment().subtract(7, 'd').format("YYYY/MM/dd");
        fromDate.set_selectedDate(lastWeekPeriod);
        toDate.set_selectedDate(today);
    }
}

如果您可以将当地时刻设置为使用YYYY/MM/DD作为默认日期显示的区域设置,则只需拨打format('L')即可。 L是Moment到区域设置默认日期显示的快捷方式。