Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]operacje na dacie
Ciubas
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


witam,

mam taki problem (mam ich mnustwo ale duzo potrafie sam rozwiazac (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )

konstrukcja:

  1. <script language="JavaScript">
  2. function update(Firma) {
  3. var data_od=parseFloat(document.forms.Firma['data_od'].value);
  4. var data_do=parseFloat(document.forms.Firma['data_do'].value);
  5. var miesiace=parseFloat(document.forms.Firma['miesiace'].value);
  6.  
  7.  
  8.  
  9. var okres = data_od + miesiace;
  10.  
  11.  
  12. document.forms.Firma['data_do'].value=okres;
  13. }
  14.  
  15. Od: <input name="data_od" type="textbox" size="8" value="<?php echo date('Y-m-d'); ?>" onChange="update(this.form)>
  16. Do: <input name="data_do" type="textbox" size="8" value="<?php echo date('Y-m-d',(strtotime(date('Y-m-d')) + (60*60*24*91))); ?>">
  17. miesiące: <input name="miesiace" type="textbox" size="2" value="3" onChange="update(this.form)">


chcialbym zeby po wpisaniu np 6 w pole miesiace, do pola: data_od zostaly dodane np 6 miesiecy i wpisane do data_do - mam z tym straszny problem w php to chwila, ale tutaj nie wiem jak dodac do siebie ta glupia date;/ (data_od tez moze byc modyfikowana dlatego jest zczytywana i w momencie jej zmiany, przeliczany caly formularz)

Ten post edytował Ciubas 9.03.2009, 12:20:07
Go to the top of the page
+Quote Post
ddiceman
post
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Kod
<script type="text/javascript">
    var d = new Date();
    var months = 12;
    var e = new Date();
    e.setMonth((d.getMonth() + months) % 12);
    e.setYear(d.getYear() + Math.floor((d.getMonth() + months)/12));
    document.write(e);
</script>
Go to the top of the page
+Quote Post
Ciubas
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


cos spieprzylem....

  1. var data_od=parseFloat(document.forms.Firma['data_od'].value);
  2. var data_do=parseFloat(document.forms.Firma['data_do'].value);
  3. var miesiace=parseFloat(document.forms.Firma['miesiace'].value);
  4.  
  5.  
  6. var d = data_od;
  7. var months = miesiace;
  8. var e = data_do;
  9. e.setMonth((d.getMonth() + months) % 12);
  10. e.setYear(d.getYear() + Math.floor((d.getMonth() + months)/12));
  11.  
  12.  
  13.  
  14. document.forms.Firma['data_do'].value=e;


pomijam fakt formatowania daty (jest pelna) a mi chodzi tylko o zapis: 2009-03-09

Ten post edytował Ciubas 9.03.2009, 13:19:05
Go to the top of the page
+Quote Post
ddiceman
post
Post #4





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Len jestes, bo dostales gotowy algorytm. Dla wersji YYYY-MM-DD:
Kod
<script type="text/javascript">
    var d = '2009-03-09';
    var months = 12;


    var data = d.split('-');
    data[0] = parseInt(data[0]) + Math.floor((parseInt(data[1]) + months)/12);
    data[1] = (parseInt(data[1]) + months - 1)%12 + 1;
    data[1] = data[1] < 10 ? '0'+data[1] : data[1];

    document.write(data[0] + '-' + data[1] + '-' + data[2]);
</script>
Go to the top of the page
+Quote Post
Ciubas
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 14.09.2003
Skąd: K-ce

Ostrzeżenie: (0%)
-----


witam,

bardzo dziekuje, nie wpadlbym na taka mozliwosc podzielenia daty, teraz wszystko dziala wysmienicie, dziekuje jeszcze raz za pomoc!
Go to the top of the page
+Quote Post
Orkan
post
Post #6





Grupa: Zarejestrowani
Postów: 55
Pomógł: 4
Dołączył: 19.05.2003
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


mozna prosciej
Kod
var d = "2009-03-09".split('-');
var months = 12;

var data = new Date(d[0], d[1]-1, d[2]);
data.setMonth(data.getMonth() + months);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 03:05