Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Convertire script da php a js

    Salve, ho uno script realizzato in php, ora vorrei convertirlo in js, potete darmi una mano o magari indirizzarmi.

    Posto il codice:

    Codice PHP:
    //$aDate = '2016-08-20';
    $rounds = array('s''p''m''n''r');
    $aDate date("Y-m-d"strtotime('-1 day'strtotime($aDate)));
    $events = array();// Calcolo di 2 anni = 730for($i=0; $i<730; $i++) {
    $random rand(1,1000);
    $nextDate date("Y-m-d"strtotime('+1 day'strtotime($aDate)));
    $event_array[] = array(
        
    'id' => $random,
        
    'title' => $rounds[$i%count($rounds)],
        
    'start' => $nextDate."T23:59:00",
        
    'tipo' => 't5'
        
    );
    $aDate $nextDate;}//echo json_encode($event_array); 
    Grazie mille.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non so quanti in questo forum mastichino il PHP, io sono fra quelli NO.
    Dicci cosa dovrebbe fare lo script e di cosa si nutre
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, spiego cosa fa quel codice. Partendo da una data iniziale es. 2017-03-25 questo esegue un ciclo for che esegue per x giorni un array. Esempio impostando un ciclo for di 11 questo restituisce:

    2017-03-25 - s
    2017-03-26 - p
    2017-03-27 - m
    2017-03-28 - n
    2017-03-29 - r
    2017-03-30 - s
    2017-03-31 - p
    2017-04-01 - m
    2017-04-02 - n
    2017-04-03 - r
    2017-04-04 - s

    Ora vorrei fare la stessa cosa in js in moda poter utilizzare lo script anche lato client. Riposto il codice completo visto che quello nel primo post manca del codice.

    Codice PHP:
    $aDate '2017-03-25';

    $rounds = array('s''p''m''n''r');
    $aDate date("Y-m-d"strtotime('-1 day'strtotime($aDate)));
    $events = array();// Calcolo di 11 giorni for($i=0; $i<11; $i++) {
    $random rand(1,1000); // mi serve per genera un id
    $nextDate date("Y-m-d"strtotime('+1 day'strtotime($aDate)));
    $event_array[] = array(
        
    'id' => $random,
        
    'title' => $rounds[$i%count($rounds)],
        
    'start' => $nextDate,
        
    'tipo' => 't5'
        
    );
    $aDate $nextDate;}//echo json_encode($event_array); 

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Non so perchè ma non viene salvato tutto il codice. L'ho copiato su http://pastebin.com/gU4f0uhW

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    quanto ne sai di js?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Prova questo.

    codice:
    <script>
    var rounds = ['s', 'p', 'm', 'n', 'r'];
    function pippo(giorno, mese, anno, nGiorni) {
     var ret = new Array();
     var data = new Date(anno, mese-1, giorno+1);
     for (var i=0;i<nGiorni;i++) {
      //alert(rounds[i%(rounds.length)]);
      ret[i] = {'id':parseInt(Math.random()*1000),'title':rounds[i%(rounds.length)],'start':data.toISOString().substr(0,10)+'T23:59:00','tipo':'t5'}
      data = new Date(data.getFullYear(),data.getMonth(),data.getDate()+1);
     }
     return ret;
    }
    </script>
    <div id="toto">
    </div>
    <script>
    // Oggi + 11 giorni
    pluto = pippo(25, 03, 2017, 11);
    // per il primo giorno
    alert(pluto[0]['start']);
    // per l'undicesimo giorno
    alert(pluto[10]['start']);
    for (i=0;i<pluto.length;i++) {
     var str = pluto[i]['start']+' '+pluto[i]['title'];
     document.getElementById('toto').innerHTML = document.getElementById('toto').innerHTML + str + '<br/>';
    }
    </script>
    Dà.
    2017-03-25T23:59:00 s
    2017-03-26T23:59:00 p
    2017-03-27T23:59:00 m
    2017-03-28T23:59:00 n
    2017-03-29T23:59:00 r
    2017-03-30T23:59:00 s
    2017-03-31T23:59:00 p
    2017-04-01T23:59:00 m
    2017-04-02T23:59:00 n
    2017-04-03T23:59:00 r
    2017-04-04T23:59:00 s
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, grazie per risposta e scusa se rispondo solo ora. Ho provato il codice è fa esattamente quello che voglio. Però non vorrei solo copiare brutalmente, ma vorrei anche capire . Ricopio il codice inserendo i commenti dove vorrei qualche info in più

    codice:
    <script>
    
    var rounds = ['s', 'p', 'm', 'n', 'r']; //ok
    
    
    function pippo(giorno, mese, anno, nGiorni) {
        var ret = new Array();
        var data = new Date(anno, mese-1, giorno+1); // perche si fa mese -1 ?
        for (var i=0;i<nGiorni;i++) {
    
    // Invece se vorrei generare un array json?
            ret[i] = {'id':parseInt(Math.random()*1000),'title':rounds[i%(rounds.length)],'start':data.toISOString().substr(0,10)+'T23:59:00','tipo':'t5'}
            data = new Date(data.getFullYear(),data.getMonth(),data.getDate()+1);
        }
    return ret;
    }
    </script>
    
    
    <div id="toto">
    </div>
    
    
    
    
    <script>
    // Oggi + 11 giorni
    // Per avere la data in questo formato partendo da 2017-03-25, posso usare split "-" giusto? 
    pluto = pippo(25, 03, 2017, 365);
    for (i=0;i<pluto.length;i++) {
        var str = pluto[i]['start']+' '+pluto[i]['title'];
        document.getElementById('toto').innerHTML = document.getElementById('toto').innerHTML + str + '<br/>';
    }
    </script>
    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Nessuno sa aiutarmi?

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Perche non provi ? Si impara molto provando e facendo errori.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Certo, ho fatto varie prove, ma non so riuscito ad arrivare alla soluzione. Tipo

    localStorage.setItem("dati-array", JSON.stringify([ret[i]]));

    Ma in questo modo non mi salva un unico array, ma mi salva solo l'ultimo, mi manca qualche passaggio.

    Ho provato anche :

    var array = [];
    var item = ret[i];
    array.push({item});
    var jsonString = JSON.stringify(array);
    localStorage.setItem("dati-array", JSON.stringify([jsonString ]));
    Ultima modifica di sixdas; 13-04-2017 a 16:54

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.