获取 Javascript 中的最后一周日期
Get the last week date in Javascript
这是我的问题:
我有 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") 设置 return 日期?我问的原因是因为在我返回 post 并尝试获取控件中的内容后,它显示如下:
3/9/2015 12:00:00AM 我只需要日期。
这是我的 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);
}
}
如果我理解得很好,你需要将当前日期减去7天。
怎么样:
解决方案 1,原版 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 减去 7 天并将日期格式化为 YYYY/MM/DD
看起来像这样:
moment().subtract(7, 'days').format('YYYY/MM/DD');
这很容易做到 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 中本地默认日期显示的快捷方式。
这是我的问题:
我有 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") 设置 return 日期?我问的原因是因为在我返回 post 并尝试获取控件中的内容后,它显示如下: 3/9/2015 12:00:00AM 我只需要日期。
这是我的 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);
}
}
如果我理解得很好,你需要将当前日期减去7天。
怎么样:
解决方案 1,原版 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 减去 7 天并将日期格式化为 YYYY/MM/DD
看起来像这样:
moment().subtract(7, 'days').format('YYYY/MM/DD');
这很容易做到 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 中本地默认日期显示的快捷方式。