Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    Un problema insolito con le date, funzioni di tempo e calendari

    Io avrei un problemino un po’ insolito con le funzioni di tempo.
    Sto provando a realizzare un sito web che contenga cronologie storiche di eventi con date sia avanti che dopo Cristo.
    Quindi capirete subito che il TIMESTAMP non è in grado di gestire le date avanti Cristo.
    Io avrei necessità di:
    - ordinare cronologicamente tutte le date delle mie cronologie.
    - calcolare il tempo trascorso tra due date
    - per ogni evento riportare la data secondo il calendario giuliano e quella rispetto al gregoriano.

    Per ora sarei in grado di realizzare solo il primo punto che è risultato più complicato di quanto possa sembrare a prima vista.
    Prima pensavo semplicemente di trasformare tutte le date in una stringa:
    anno+mese+giorno AAAAMMGG con segno + o meno in davanti all’anno ;
    Se si registra la stringa in un campo e poi si ordina con mySql. queste però non vengono ordinate correttamente (ovviamente).
    Per ora ho risolto registrando separatamente anno, mese e giorno in tre campi diversi e le ordino poi con un semplice algoritmo.

    Rimane però la questione di come calcolare il tempo trascorso tra due date
    (immagina sempre una data avanti Cristo ed una dopo C.).

    Al momento non ho trovato librerie che possano risolvere “automaticamente” il mio problema.

    Sarei molto felice di avere un vostro consiglio su come procedere.

    Grazie mille!

  2. #2
    oooh alleluja un post interessante finalmente!

    ci penso, magari ripasso domani

    prova intanto ad ispirarti magari qui il tizio ha già risolto la cosa: http://www.toforge.com/2011/03/histo...-christ-dates/
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Per quanto riguarda la gestione delle date puoi provare a dare un'occhiata alle funzioni Date/Time, ma considera che alcune di esse sono presenti solamente dalla versione 5.3 di PHP.
    Per i calendari invece c'è l'estensione Calendar
    Dai un'occhiata anche a questo POST
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    Santino:
    Ho provato a scaricare historytimeline ma è difficile capire che genere di codice ha utilizzato e comunque questa applicazione sembra che sia in grado solamente di ordinare le date senza fare calcoli con esse.

    Satifal:
    Sul post che hai indicato viene formulato più o meno lo stesso problema ma non vengono date risposte convincenti.
    Tu consigli di leggere il manuale ufficiale.
    E' la prima cosa che ho fatto e leggendo l'introduzione si intende che php sia in grado di lavorare con le date prima di cristo:
    ...
    The date and time information is internally stored as an 64-bit number so all imaginable dates (including negative years) are supported. The range is from about 292 billion years in the past to the same in the future.
    ...
    Sfortunatamente non riesco a trovare esempi per il mio problema... continuo a cercare....

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    Qui si era già parlato del problema .... senza trovare soluzioni...

    http://forum.html.it/forum/showthread/t-851948.html

    Mi sembra ora ovvio che bisogna dimenticarsi delle funzioni data e calendario di Php e provare a sviluppare delle nuove funzioni.

    Chi è disposto a darmi una mano?

  6. #6
    La classe DateTime supporta gli anni negativi. Per usarne tutte le funzioni e' necessario php 5.3+.

    Esempio:
    Codice PHP:
    $start = new DateTime('-0050-12-30');
    $end   = new DateTime('+2011-10-27');

    $diff date_diff($start$end);

    echo 
    $diff->format('%Y years, %m months, %d days have passed.'); 

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    tutto risolto!
    grazie mille!

    devo ammettere con vergogna che conosco molto poco la programmazione orientata agli oggetti e quindi non avevo letto con attenzione il manuale.
    speravo di trovare una soluzione tra le funzioni native di php invece la soluzione era racchiusa in una classe.

    questo sarà uno stimolo maggiore per approfondire lo studio della programmazione orientata agli oggetti.

    grazie infinite

  8. #8
    DateTime ha anche un'interfaccia procedurale oltre a quella object oriented.

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.