2015-03-10 4 views
-1

Вот мой вопрос:Получить последнюю дату неделю в 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 для контроля над выпуском является формат: Пн Мар 09 2015 17:36:58 GMT-0700 (Pacific Daylight Time)

Как я могу установить дату возврата в этом формате ("yyyy/MM/dd") используя Javascript? причина, о которой я прошу, заключается в том, что после того, как я делаю сообщение назад и пытаюсь получить то, что не удалось контролировать, это было показано следующим образом: 3/9/2015 12:00:00 AM и мне нужна только дата.

Вот мой 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

это легко сделать с помощью 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 для отображения даты по умолчанию для локали.

+0

Спасибо за ваш ответ, я добавил библиотеку в свой проект, но по какой-то причине я не могу установить выбранную дату после вычитания 7 дней. Какие-либо предложения? –

+0

делает это: 'toDate.set_selectedDate (сегодня);'? вы получаете какие-либо ошибки консоли? – Eonasdan

+0

Вот мой код после изменения: var lastWeekPeriod = moment(). Subtract (7, 'd'). Format ('l'); fromDate.set_selectedDate (lastWeekPeriod); и вот мой контроль:

0

Если я хорошо понимаю, что вам нужно вычитать 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. Это действительно упростит задачу. Например, вычитая семь дней и форматирование даты YYYY/MM/DD с momentjs выглядит следующим образом:

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


Смежные вопросы