Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636

    Aggiungere minuti a data

    salve a tutti. Ho la necessità di aggiungere a una data iniziale un certo numero di minuti.
    Esempio aggiungendo 100 minuti:
    -inizio: Sun Jan 08 2012 06:00:00 GMT+0100 (ora solare Europa occidentale)
    -fine: Sun Jan 08 2012 07:40:00 GMT+0100 (ora solare Europa occidentale)

    Ecco un pò di codice:
    codice:
    start = new Date(date);
    end = new Date(date);
    end.setMinutes(end.getMinutes()+100);
    console.log(start+" "+end);
    Ci sono casi in cui funziona perfettamente (come nell'esempio di sopra)
    E casi in cui invece non funziona per niente. Infatti se la data di inizio contiene come minuti qualcosa di diverso da zero ecco cosa ottengo:
    -inizio:Sun Jan 08 2012 06:30:00 GMT+0100 (ora solare Europa occidentale)
    -fine: Sun Jan 29 2012 03:40:00 GMT+0100 (ora solare Europa occidentale)

    Perchè?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non vedo alcun problema... forse sta nel contenuto della tua variabile date
    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
    Oct 2009
    Messaggi
    636
    ho risolto utilizzando la libreria datejs. Ora il problema è che non posso passare le date tramite richieste asincrone.

  4. #4
    Originariamente inviato da longilineo
    ho risolto utilizzando la libreria datejs.
    Secondo me il problema non sta nell'aver usato datejs al posto di farlo tu a mano, infatti se noti nel sorgente di datejs:

    codice:
    Date.prototype.addMinutes = function(value) {
    	return this.addMilliseconds(value * 60000);
    };
    
    Date.prototype.addMilliseconds = function(value) {
    	this.setMilliseconds(this.getMilliseconds() + value);
    	return this;
    };
    Immagino tu abbia usato "addMinutes". Se non vuoi usare la setMinutes (a me pare vada bene comunque, non mi pare sia buggata), puoi fare il verso a quello che vedi nel codice che ho postato. Se ti serve solo per quello, credo sia inutile prendere l'intera libreria.


  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da longilineo
    ho risolto utilizzando la libreria datejs. Ora il problema è che non posso passare le date tramite richieste asincrone.
    Quando smetterai di lanciare messaggi criptici e spiegherai dettagliatamente antefatti e procedure adottate riavrai la mia attenzione
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Da come dici sembra sia una mia abitudine lanciare messaggi criptici, semplicemente dopo aver incluso la libreria datejs qualunque data, cioè oggetto di tipo Date, non può essere passato come parametro nelle richieste asincrone.

    Ho risolto anche questo utilizzando .toString().

    In ogni caso userò molte funzioni sulle date e datejs sembra fare al caso mio.

    Posto un pò di codice:
    codice:
    start = new Date(date);
    end = date.add(100).minutes();
    Per passarlo alla richiesta asincrona:
    codice:
    data: ({"inizio":start.toString()})
    Grazie a tutti per le risposte.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.