这是我的问题:
我有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);
}
}
答案 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)
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到区域设置默认日期显示的快捷方式。