|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2374
|
[JAVASCRIPT / PHP] La somma dei mesi non coincide fra i 2 linguaggi
Saluti a tutti,
volevo proporre una specie di sondaggio Ho questo codice PHP Codice PHP:
Codice:
var d = moment("2017/08/30", "YYYY/MM/DD"); d.add(18, "months"); Entrambi gli spezzoni di codice aggiungono 18 mesi al 30 agosto 2017, utilizzando praticamente gli stessi oggetti che i 2 linguaggi mettono a disposizione Il PHP mi ritorna 2 marzo 2019 Il Javascript ritorna invece 28 febbraio 2019 Ovviamente devo fare in modo che da entrambi i linguaggi si ottenga lo stesso risultato, e una soluzione l'avrei già trovata. Senza dirvi cosa ho scelto io, vi chiedo quale scegliereste "a logica" fra i 2 risultati Ciao!
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola One Vision Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1799
|
Codice PHP:
e in js ? Codice PHP:
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it Ultima modifica di les2 : 01-06-2018 alle 10:52. |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2374
|
Quote:
In Javascript, con quel codice che mi hai quotato, fatte alcune modifiche perchè setMonth non ritorna un oggetto Date (ma vabbè, presumo tu abbia scritto il codice così a getto), addirittura mi propone 30 marzo 2019 In generale non conviene utilizzare l'oggetto puro javascript Date perchè si porta dietro mille problemi, come questo, ma conviene usare lib come Moment.js o Date.js, come ho effettivamente usato. La domanda rimane aperta Saluti
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola One Vision Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2017
Messaggi: 469
|
Per prima cosa va chiarito che soluzione ti aspetti, nella vita di tutti giorni dire 18 mesi dopo il 30 agosto 2017 vuol dire il 28 febbraio 2019
Quindi il risultato corretto sarebbe quello di Javascript con Moment.js... |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2007
Città: DiSaronno Originale
Messaggi: 2374
|
Quote:
Il mio intento era di verificare quanti siamo a pensarla allo stesso modo, e magari una risposta al perchè PHP si comporti in questa maniera.
__________________
Dell XPS 9570 Powered by Arch Linux || Motorola One Vision Ho concluso con raffaelev, Iceworld, stebru, Dichy, AXIP, Quakeman e Swampo |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1799
|
Ciao,
sì ho scritto ovviamente senza provarlo (copia incolla al volo) allora, per me è "giusto" php o meglio per avere la stessa cosa bisogna farla in modo differente. tu stai cercando una data + n mesi, ma non è l'inizio mese. Quindi dovresti cercare ad esempio + 19 mesi - 1 giorno, no? se è questo quello che vuoi (ovvero il 28 o 29 febbraio) probabilmente il comodissimo moment.js lo fa da solo a memoria non so assolutamente chi fa cosa e come, guardo di volta in volta in base alla necessità, sicuramente librerie come moment.sj in php non ci sono ma non significa che non si possano far ele cose :P spero di averti aiutato, scusa il ritardo
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:59.