Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    54

    giorno della settimana con function date

    Premettendo che:

    la funzione DATE(l);

    ('L' piccola) - mi restituisce il giorno della settimana, testuale, long; i.e. "Friday"

    vorrei sapere se è possibile sempre con questa funzione sapere il giorno della settimana ma non di oggi, di un giorno che voglio io!

    Es.
    $oggi = Date("l");

    $primo_dicembre = date("l",?????); esiste un parametro data da passargli?

    grazie.

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    "Descrizione
    string date ( string formato [, int timestamp])"
    http://it.php.net/date


    codice:
    echo date("l",mktime(20,30,0,09,30,2004));
    think simple think ringo

  3. #3
    $primo_dicembre = date("l",mktime(0,0,0,12,1,2004));


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    54
    grazie, perfetto, funziona tutto!

  5. #5
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Occhio che non funziona per giorni arbitrari, ma e' limitato ai giorni rappresentabili tramite un unix timestamp. Questo timestamp oltretutto ha un range di valori differenti sotto windows e sotto unix. Sotto windows, non sono rappresentabili giorni < 1 gennaio 1970, mentre sotto unix penso siano < 1 gennaio 1900. NOn sono inoltre rappresentabili i giorni > un certo giorno del 2038 che non ricordo.

    Per ovviare il problema ti consiglio questa funzione:

    codice:
    /*
       Calcola il giorno della settimana utilizzando l'argoritmo
       della congruenza di Zeller.
    
       Fonte: http://www.lysator.liu.se/faq/c-faq/c-17.html#17-28
    */
    
    function weekday($year, $month, $day)
    {
        // Algoritmo: (day + y + y/4 - y/100 + y/400 + 31m/12 ) mod 7
        // Le divisioni sono divisioni fra interi
    
        $a = floor((14 - $month) / 12);
    
        $y = $year - $a;
        $m = $month + 12 * $a - 2;
        $d = $day;
    
        $weekday = ($d + $y + floor($y/4) - floor($y/100) + floor($y/400) + floor((31 * $m) / 12)) % 7;
    
        return $weekday;
    }

  6. #6
    Originariamente inviato da *Ray*
    Occhio che non funziona per giorni arbitrari, ma e' limitato ai giorni rappresentabili tramite un unix timestamp. Questo timestamp oltretutto ha un range di valori differenti sotto windows e sotto unix. Sotto windows, non sono rappresentabili giorni < 1 gennaio 1970, mentre sotto unix penso siano < 1 gennaio 1900. NOn sono inoltre rappresentabili i giorni > un certo giorno del 2038 che non ricordo.
    Credo ti sia perso l'aggiornamento UNIX del Y2K (anno 2000). Per il range del UNIX TIMESTAMP si sono dette tante parole ultimamente. Per esempio:

    http://forum.html.it/forum/showthrea...hreadid=720711


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Non capisco cosa c'entri il topic in questione..

  8. #8
    Originariamente inviato da *Ray*
    Non capisco cosa c'entri il topic in questione..
    La questione UNIX TIMESTAMP l'hai richiamata tu con la tua affermazione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    C'e' scritto esattamente quello che ho detto in quel post.. non capisco cosa ci sia da precisare. Quello da precisare che non e' invece ovvio e' che sotto UNIX i valori permessi sono dal 1900 circa al 2038 circa, sotto Windows NO.

    Provare per credere su una macchina Windows con Apache/PHP (lanciato ora sotto PHP 4.3.9):
    codice:
    <?php
    
        print( date ("l", mktime(0,0,0,7,1,1940)));
    
    ?>
    Risultato di questo codice sotto Windows:
    Warning: mktime(): Windows does not support negative values for this function in d:\ware\net\apache\htdocs\date.php on line 3

    Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in d:\ware\net\apache\htdocs\date.php on line 3
    Sotto Unix funzionera' presumo, ma comunque non per date fuori dal range 1900-2038.

    Per questo motivo suggerivo di usare la funzione in questione, visto che e' indipendente dalla piattaforma e copre un range infinitamente piu' ampio di date.

  10. #10
    Sotto Unix funzionera' presumo, ma comunque non per date fuori dal range 1900-2038.
    Non avevo notato il "presumo".




    time
    (PHP 3, PHP 4 , PHP 5)

    time -- Restituisce l'attuale UNIX timestamp
    Descrizione
    int time ( void )


    Restituisce l'attuale data e orario misurata in numero di secondi dalla Unix Epoch (January 1 1970 00:00:00 GMT).

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.