Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2019, 11:31
Новичок на форуме
Отправить личное сообщение для basicom Посмотреть профиль Найти все сообщения от basicom
 
Регистрация: 07.11.2019
Сообщений: 5

Datepicker установка даты с интервалом от выбранной
Есть datepicker. Нужна дата с интервалом, например "-2m" от выбранной.
Установка setDate работает только от текущей даты:

$('#dateFirst').datepicker("setDate",-2m);

Как считать дату -2 месяца от выбранной на календаре и при этом календарь оставить на выбранной дате?
Можно сделать без парсирования текстового поля, а средствами datepicker?

Последний раз редактировалось basicom, 07.11.2019 в 13:14.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2019, 11:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от basicom
Как считать дату -2 месяца от выбранной на календаре и при этом календарь оставить на выбранной дате?
моя твоя не понимай.
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2019, 11:51
Новичок на форуме
Отправить личное сообщение для basicom Посмотреть профиль Найти все сообщения от basicom
 
Регистрация: 07.11.2019
Сообщений: 5

<script>
        function getTables() {
            var start = document.getElementById("start").value;
            var end = document.getElementById("end").value;
            var partners_id = $("#clients").val().toString();

            $('#start').datepicker("setDate","-2m");
            var startDens = document.getElementById("start").value;
            $('#start').datepicker("setDate","0m");

Нужно получить дату на 2 месяца ранее, чем та которую выбрали на календаре. Выше написанный кусочек кода получает дату раньше на 2 месяца от сегодняшней, а не выбранной.

Последний раз редактировалось basicom, 07.11.2019 в 13:13.
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2019, 14:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

datepicker выделение диапазона дат
basicom,

<!doctype html>



<html lang="en">

<head>

  <meta charset="utf-8" />

  <title>jQuery UI Datepicker - Default functionality</title>
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/sunny/jquery-ui.css">
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
   <style type="text/css">

body{
     font-size: 12px;
   }
.highlight_days .ui-state-default{
    background: rgba(102, 255, 102, 1)
}
.highlight_days:hover .ui-state-default{
    background: rgba(255, 255, 0, 1)
}

.test .ui-state-default{
    background: rgba(255, 215, 0, 1)
}
   </style>
  <script>

$(function() {
 $.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,
        changeYear: false,
        showAnim:'scale'
};
var events = [];
function bigDay(date, arr)
{
  return arr.some(function(el) {
  return date >= new Date(el[0]) && date <= new Date(el[1])
})
}

$.datepicker.setDefaults($.datepicker.regional['ru']);
$( '#datepicker' ).datepicker({
numberOfMonths: [1, 3],
dateFormat: "yy.mm.dd",
beforeShowDay: function(date) {
return bigDay(date, events) ? [true, 'highlight_days', null] : [true, '', null];
 },
onSelect : function(dateText, elem) {
  var date = $.datepicker.parseDate( "yy.mm.dd", dateText);
  var dateLast = $.datepicker.formatDate( "yy-mm-dd", date );
      date.setMonth(elem.selectedMonth - 2);
      $('#datepicker').datepicker("setDate",date); 
  var dateFirst = $.datepicker.formatDate( "yy-mm-dd", date );
     events = [[dateFirst, dateLast]];
     $( '[name="startDate"]' ).val(dateFirst);
     $( '[name="endDate"]' ).val(dateLast);
}
})
  });
  </script>
</head>
<body>
<div id="datepicker"></div>
<input name="startDate">
<input name="endDate">
</body>
</html>

Последний раз редактировалось рони, 08.11.2019 в 15:09.
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2019, 10:06
Новичок на форуме
Отправить личное сообщение для basicom Посмотреть профиль Найти все сообщения от basicom
 
Регистрация: 07.11.2019
Сообщений: 5

рони,
Спасибо за развёрнутый ответ. Но вот незадача, оказывается в javascript нет глобальных переменных?((
Если я в функции записал значение в переменную, то при выходе из функции она теряет значение?
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2019, 10:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от basicom
Но вот незадача, оказывается в javascript нет глобальных переменных?((
бред, какой - то, куда они делись?
Сообщение от basicom
Если я в функции записал значение в переменную, то при выходе из функции она теряет значение?
не понимаю.
выбрали дату, передали в нужную функцию.
вместо или вместе $( '[name="startDate"]' ).val(dateFirst);
fn(dateFirst)
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2019, 14:39
Новичок на форуме
Отправить личное сообщение для basicom Посмотреть профиль Найти все сообщения от basicom
 
Регистрация: 07.11.2019
Сообщений: 5

Т.е. простого способа передвинуть календарь на нужный интервал от выбранной даты не существует?
У меня сейчас 2 пути:
1. изучать весь javasсript чтобы понять что Вы написали и зачем или
2. пропарсить строку "yyyy-mm-dd", обработать вручную вычитание месяца и передать в переменную.
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2019, 15:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от basicom
Т.е. простого способа передвинуть календарь на нужный интервал от выбранной даты не существует?

строка 72 пост #4.
Ответить с цитированием
  #9 (permalink)  
Старый 11.11.2019, 12:14
Новичок на форуме
Отправить личное сообщение для basicom Посмотреть профиль Найти все сообщения от basicom
 
Регистрация: 07.11.2019
Сообщений: 5

<script>
      function getTables() {
        var start = document.getElementById("start").value;
        var end = document.getElementById("end").value;
        var partners_id = $("#clients").val().toString();
        s1=Number(start.replace(/\D+/g,""));
        let per=-2;
 	$('#Dstart').datepicker("setDate", per+"m");
	var startD = document.getElementById("Dstart").value;
	s2=Number(startD.replace(/\D+/g,""));
        while (s1 < s2 ) {
 	    per=--per;
            $('#Dstart').datepicker("setDate", per+"m");
            startD = document.getElementById("Dstart").value;
	    s2=Number(startD.replace(/\D+/g,""));
	}

        var startDens = document.getElementById("Dstart").value;



решил пока таким образом оставить для теста

Последний раз редактировалось basicom, 11.11.2019 в 12:19.
Ответить с цитированием
  #10 (permalink)  
Старый 11.11.2019, 12:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

basicom,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена символов в строке, установка даты uryashnik Firefox/Mozilla 4 17.01.2018 01:41
Калькулятор с вариантом значений. dzho Общие вопросы Javascript 45 06.08.2017 03:54
При выборе даты в datepicker страница перезагружается wfjs jQuery 2 08.01.2016 18:47
UI datepicker отображение произвольной даты при загрузке al456 jQuery 6 30.12.2013 03:37
jQuery DatePicker: формат даты при передаче в get запросе viko_rus jQuery 0 16.02.2011 13:33