Pagina 1 din 1

adaugare numar zile la data din datepicker

Scris: Sâm Sep 24, 2016
de andras
Salut,
Am in pagina un input text pe care l-am facut datepicker. Folosesc

Cod: Selectaţi tot

<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
Aceasta variabila este trimisa prin ajax. Vreau ca pe baza datei sistem (datacurenta) sa setez in :success o valoare pentru alta variabila (data2), la care sa pun spre exemplu datacurenta.getDate +3, adica sa adaug 3 zile. La sfirsit vreau sa compar in JS cele 3 variabile, ex:

Cod: Selectaţi tot

<script>
if (data1 <= datacurenta && data2 >= datacurenta){ ... }
else{ ...}
</script>
Cum procedez? Am incercat in multe feluri, problema e ca atunci cind setez data2 se modifica toate datepicker. Nu inteleg de ce. Multumesc.

adaugare numar zile la data din datepicker

Scris: Sâm Sep 24, 2016
de MarPlo
Salut
Variabila "datacurenta", e cu data-timpul transmis la ajax de pe server sau e preluata din datepicker; si ce valoare are?
Pune codul si ce ai incrcat.

adaugare numar zile la data din datepicker

Scris: Sâm Sep 24, 2016
de andras
Am extras esentialul pentru ca e prea mult sa pun tot codul:

Cod: Selectaţi tot

<script>
var date = $('#datepickerv').datepicker('getDate'); // preia din html si are valoare Tue Sep 24 2016 00:00:00 GMT+0300 (GTB Summer Time)
var day = $.datepicker.formatDate('DD', date); // Saturday
var datalimita = date.setDate(date.getDate()+3); 
console.log(date); //Tue Sep 27 2016 00:00:00 GMT+0300 (GTB Summer Time) (de ce se schimba? N-ar trebui sa ramina tot data 24 Sep?)
console.log(datalimita); // 1474923600000
</script>
Aici e toata problema, s-a modificat si date, n-a ramas 24. Imi trebuie ca date sa fie 24 iar datalimita sa fie 27, ca sa pot incadra datacurenta inre ele (datacurenta este data pe care o alege user-ul, deci vine tot din html, poate fi 24, 25 26 sau 27).

adaugare numar zile la data din datepicker

Scris: Dum Sep 25, 2016
de MarPlo
Situatia prezentata se petrece deoarece instructiunea: date.setDate() face setarea datei la obiectul apelat (date), apoi returneaza valoarea la variabila (datalimita).
- Solutia e sa faci o copie a obiectului date in alta variabila si sa aplici setDate() la obiectul copiat.

Cod: Selectaţi tot

<script>
var date = $('#datepickerv').datepicker('getDate'); //ia din html, are valoare Tue Sep 24 2016 00:00:00 GMT+0300 (GTB Summer Time)
var day = $.datepicker.formatDate('DD', date); // Saturday
var datalimita = new Date(date.valueOf());  //copie obiectul date
var datalimita = datalimita.setDate(date.getDate()+3);  //seteaza data la obiectul copiat
console.log(date); //valoare nemodificata
console.log(datalimita); // 1474923600000
</script>

adaugare numar zile la data din datepicker

Scris: Dum Sep 25, 2016
de andras
Functioneaza, multumesc. Plus ca face automat conversia intre forma Tue Sep 27 2016 00:00:00 GMT+0300 (GTB Summer Time) si forma UNIX 1474923600000, nu mai este nevoie sa aplic functie de conversie. Deci, s-a rezolvat.

adaugare numar zile la data din datepicker

Scris: Joi Sep 29, 2016
de andras
Salut,
Se poate aplica o functie datepicker la o variabila venita din ajax? Ex. in :success:

Cod: Selectaţi tot

<script>
var date = $('#datepickerv').datepicker('getDate'); // Fri Sep 30 2016 00:00:00 GMT+0300 (GTB Summer Time)
var obj = msg['culege']; // array venit din ajax care contine cimpul dataexp
var dataexpirarii = obj[0].dataexp; //2016-09-30
dataexpirarii = dataexpirarii.datepicker('getDate'); // eroare :1:487 Uncaught TypeError: dataexpirarii.datepicker is not a function
</script>
Ideea este este ca vreau sa aduc dataexp (2016-09-30) la forma Fri Sep 30 2016 00:00:00 GMT+0300 (GTB Summer Time) ca sa le pot compara. In prezent JS nu le poate compara desi in baza de date cimpul dataexp este de tip DATE.

adaugare numar zile la data din datepicker

Scris: Joi Sep 29, 2016
de MarPlo
Nu stiu cum functioneaza datepicker(), dar din ce vad in cod, functia datepicker() se aplica la un obiect jQuery , nu la o data.
Poti sa incerci cu obiectul Date() sa transformi sirul cu data intr-un obiect JS pentru lucru cu data-timp:

Cod: Selectaţi tot

var dataexpirarii = new Date(obj[0].dataexp);
Sau, daca e pentru comparatie, datele respective le transformi in numar UnixTimestamp.

adaugare numar zile la data din datepicker

Scris: Joi Sep 29, 2016
de andras
Functioneaza cu obiect JS. Multumesc!