2012-10-02 3 views
0

У меня есть два 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); 
     }); 

ответ

1

Жалко, но JS не имеет хорошие возможности манипулирования даты и времени.
Хорошие новости - вы можете использовать для этого плагин.
Например:

  • Moment - очень хороший плагин от SO пользователя timrwood
  • date.js - еще один хороший плагин для даты и времени манипуляции

Они оба (и многие другие) имеют функции для добавления/вычитание дней и форматирование даты. И многие другие полезные варианты.

+0

date.js удовлетворяет потребности. Благодарю вас за информацию! –

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)); 

Для формиат мм/DD/YYYY использовать .ToShortDateString()

+0

- это OP, использующий C#? – MikeB

+0

Да, эта функция устанавливает начало и конец недели и не обязательно интервал 7 дней. Но метод .AddDays() может сделать это. – PiLHA

+0

Мой вопрос о вставке и управлении датами через jQuery. –

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