Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   datepicker 29 февраля (https://javascript.ru/forum/jquery/43199-datepicker-29-fevralya.html)

Sveta 26.11.2013 11:34

datepicker 29 февраля
 
Здравствуйте, подскажите пожалуйста, как установить календарю желаемый год?
Проблема вот в чем, есть календарь, в котором мы выбираем только число и месяц. Год мы не выбираем!!!!
Отдельно, в другом месте, определяется год, он не связан с календарем. И вот тут проблема, мне нужно чтобы в случае если год високосный - в календаре было 29 февраля, если нет - то нет. Год я могу передать через переменную, но я на нашла в стандартных свойствах свойства установки года....подскажите пожалуйста.

рони 26.11.2013 11:47

Sveta,
диапазон лет года одинаковые сделайте
$("selector").datepicker({ yearRange:'2013:2013' });

можно и выбор запретить всё равно в выборе всего один год будет
changeYear: false

Sveta 26.11.2013 11:54

jquery ui datapicker....я думала у джиквери только один календарь..
код стандартный, обычный календарь без выбора года
$.datepicker.regional['ru'] = {
					closeText: 'Закрыть',
					prevText: '<Пред',
					nextText: 'След>',
					currentText: 'Сегодня',
					monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
					'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
					monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
					'Июл','Авг','Сен','Окт','Ноя','Дек'],
					dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
					dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
					dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
					weekHeader: 'Не',
					dateFormat: 'yy-mm-dd',
					firstDay: 1,
					isRTL: false,
					showMonthAfterYear: false
				};
					$.datepicker.setDefaults($.datepicker.regional['ru']);

var default_options = {
				//changeYear: true,
				timeOnlyTitle: 'Выберите время',
				timeText: 'Время',
				hourText: 'Часы',
				minuteText: 'Минуты',
				secondText: 'Секунды',
				currentText: 'Сейчас',
				closeText: 'Принять',
				changeMonth: true,
				changeYear: false,
				numberOfMonths: 1,
				firstDay: 1,
				showButtonPanel: true,
				dateFormat: "mm-dd",
				
			};
			
			var extended_options_from = $.extend({
			defaultDate: date_from,
	        hour: 00,
	        minute: 00
			}, default_options);

на нем еще таймпикер для выбора часов и минут.....
суть в том как мне заставить его меняться - есть 29 фефраля и нет 29 февраля...может у него свойство особое какое есть...

Sveta 26.11.2013 11:55

причем динамически меняться....

Sveta 04.12.2013 11:18

рони,
Цитата:

диапазон лет года одинаковые сделайте
$("selector").datepicker({ yearRange:'2013:2013' });
Сделала...и что это дает?

рони 04.12.2013 11:32

Sveta,
а что не так то? установив календарю необходимый год вы автоматом получаите нужные дни в месяцах.

Sveta 04.12.2013 11:53

возможно так он и должен работать, но у меня не работает(( что-то не так:
я сделала как вы сказали, yearRange:'2012:2012' даже changeYear: сделала true , чтобы год видеть, календарь показывает 2012 год (он был вискокосный) но 29 февраля нет!!! когда я сделала yearRange:'2012:2015' то при выборе 2012 года 29 февраля появляется...но по умолчанию календарь на 2013 году....а так как мне в итоге выбор года нужно скрыть и динамически менять.......

рони 04.12.2013 12:18

Цитата:

Сообщение от Sveta
показывает 2012 год (он был вискокосный) но 29 февраля нет!!!

Цитата:

ну шо вы такое говорите ?
<!doctype html>



<html lang="en">

<head>

  <meta charset="utf-8" />

  <title>jQuery UI Datepicker - Default functionality</title>

  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/sunny/jquery-ui.css" />

  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>

  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

  <link rel="stylesheet" href="/resources/demos/style.css" />
   <style type="text/css">
   <!--
   body{
     font-size: 12px;
   }

   -->
   </style>
  <script>      

  $(function() {
    var x = new Date(2012,1,29);
    $.datepicker.regional['ru'] = {
		closeText: 'Закрыть',
		prevText: '&#x3c;Пред',
		nextText: 'След&#x3e;',
		currentText: 'Сегодня',
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'],
		dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
		dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
		dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showOtherMonths:true,
		selectOtherMonths:true,
		changeMonth:true,
		minDate : '01.01.2012',
		maxDate : '31.12.2012',
 defaultDate: x,
        yearRange :   "2012:2012",
        changeYear: false,
        showAnim:"scale"
};
$.datepicker.setDefaults($.datepicker.regional['ru'])
$( '#datepicker' ).datepicker();
  });
  </script>
</head>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
</html>

рони 04.12.2013 12:23

Sveta,
minDate : '01.01.2012',
maxDate : '31.12.2012', без установки диапазона лет так надёжнее

Sveta 04.12.2013 13:40

хмм....я не могу задать минимальную и максимальную дату..дело в том что при загрузке у меня установлена дата по умолчанию - первое число текущего месяца, год я не указываю, так как у меня формат даты "mm-dd"...но высчитывается дата по умолчанию через текущую дату:
var maxDate=new Date();
var maxMonth=maxDate.getMonth()+1;
   if(maxMonth<10){maxMonth='0'+maxMonth;}

а потом я делаю так:
var date_from=maxMonth+"-01 00:00";

ну и в календарь все это
defaultDate:date_from ,


Часовой пояс GMT +3, время: 03:04.