Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Stampare Date in diversi fusi orari senza librerie js aggiuntive

    Ciao a tutti,
    ho sotto mano un progetto che non posso modificare più di tanto (per esempio aggiungere librerie nuove) - o per lo meno richiederebbe del tempo per farlo. Credo infatti, da ricerche sia in questo forum che fuori, che il mio problema sia risolvibile usando la libreria "moment", che per ora non posso usare.

    Dunque, questo progetto è in grado di generare dei rapporti, sia in html che in pdf.
    Tra le varie opzioni, l'utente può scegliere un intervallo di tempo: data di inizio, data di fine di un'intervallo, quindo visualizza gli eventi che sono in tale intervallo.

    Tutto funziona bene tranne quando l'utente è in una zona oraria diversa dal server. Se l'utente sceglie di generare un pdf, questo viene generato completamente sul server e usando solo il fuso orario del server.
    Quello che è importante è che il rapporto viene generato sul server in Javascript (HTML) e poi "stampato" in pdf (per la cronaca: usando phantomjs).

    Così succede che se il server è due ore indietro, il cliente seleziona l'intervallo dalle 8:00 fino alle 16:00, ma si ritrova un rapporto pdf che indica l'intervallo 6:00-14:00, il che causa confusione.

    Ho pensato che potrei far sì che il cliente che crea il rapporto possa inviare anche il proprio fuso orario. Così generando il pdf l'oggetto Date sarà scritto sul pdf con il fuso orario del cliente che ha chiesto il rapporto, per esempio Europe/Rome.

    Si può trasformare una Date(...) in stringa rappresentata in un fuso orario a piacere usando solo l'oggetto Date di javascript?
    Ultima modifica di cofra347; 18-07-2018 a 17:39 Motivo: accenti danneggiati dopo la schermata per (ri)loggarmi
    Libero > imposto
    Lunux > Windows
    Esperanto > lingua del padrone
    Kirek
    (dove > è "maggiore di")

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Direi di sì, ma la spiegazione non è chiarissima.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Molto semplice:
    Con JS prelevi l'ora del client e la passi al server
    Prelevi la data del server e le confronti individuando la differenza
    Ti calcoli l'ora da restituire per il funzionamento della tua procedura

  4. #4
    Grazie dei consigli.
    La questione è più complicata del previsto, in quanto se i pdf generati da un cliente sono nel fuso orario del cliente, ognuno crea rapporti nel proprio fuso orario e questo è apparentemente buono.
    Tuttavia se qualcun altro in un diverso stato scaricherà quegli stessi pdf, non sapendo in quale fuso orario sono stati generati, li interpreterà nel proprio fuso orario...
    Morale, forse è meglio usare il fuso orario del server per tutti, e indicare di quale fuso orario si tratta accanto ad ogni orario (ad esempio UDC, CET ecc.).

    Ancora da pensarci su, ma per ora tendo ad una soluzione del genere.
    Libero > imposto
    Lunux > Windows
    Esperanto > lingua del padrone
    Kirek
    (dove > è "maggiore di")

  5. #5
    ma questi PDF generati dal cliente, chi li genera fisicamente: Il cliente in locale o il server?
    Se li genera il server vale l'opzione che ti ho sopra suggerito.

    Se invece, indipendentemente da quale cliente e come la generi, la data deve essere chiara per tutti i clienti, l'opzione è solo una: DATA UTC

  6. #6
    Quote Originariamente inviata da SoloWiFi Visualizza il messaggio
    ma questi PDF generati dal cliente, chi li genera fisicamente: Il cliente in locale o il server?
    Se li genera il server vale l'opzione che ti ho sopra suggerito.

    Se invece, indipendentemente da quale cliente e come la generi, la data deve essere chiara per tutti i clienti, l'opzione è solo una: DATA UTC
    Il server li genera. Le date sono nel server in formato UTC, vengono usate per fare calcoli, confronti, valutazioni ecc. nel fuso orario UTC ma poi visualizzate nel fuso orario locale del server, che nel 95% dei casi è anche il formato del cliente perché è un server aziendale e non globale, hanno problemi solo in quelle aziende con sedi in con diversi fusi orari...

    Ho scartato il formato UTC nei pdf perché come puoi notare da quel 95%, usando il formato del server faccio contenti il 95% delle persone, mentre usando il formato UTC farei scontenti il 95% della gente, che dovrà mettersi a fare i conti (a meno di non essere nella zona Greenwich e non avere il cambio solare-legale...).

    Insomma, statistiche alla mano mi pare il compromesso migliore usare l'orario del server, comunque noto come in molti casi i problemi con gli orari non sono così banali come sembrano a prima vista...
    Ultima modifica di cofra347; 24-07-2018 a 08:54
    Libero > imposto
    Lunux > Windows
    Esperanto > lingua del padrone
    Kirek
    (dove > è "maggiore di")

  7. #7
    Devi scegliere cosa fare.
    Se io scrivo un libro in italiano è ovvio che i cinesi non lo leggono.
    Se io inserisco la data italiana per i cinesi è una data errata.

  8. #8
    Infatti come ho scritto sopra, ho deciso cosa fare
    Libero > imposto
    Lunux > Windows
    Esperanto > lingua del padrone
    Kirek
    (dove > è "maggiore di")

Tag per questa discussione

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.