Visualizzazione risultati 1 fino 6 di 6

Discussione: [PHP]Date

  1. #1
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito [PHP]Date

    Scusate l'ignoranza, ma sono nuovo del PHP

    Perchè se scrivo:
    echo date("l, j F Y",mktime(2003-08-04));

    Mi restituisce "Saturday, 9 October 2004"
    Non ha senso! :?????:

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Beh certo che non ha senso, hai indicato male i parametri alla funzione mktime, consiglio questo link sulla funzione mktime, del manuale php ufficiale:
    http://it.php.net/manual/it/function.mktime.php

    La funzione vuole tanti singoli parametri numerici per ciascuna componente di data, forse ti risulterà più comoda la funzione strtotime() (string to time):
    http://it.php.net/manual/it/function.strtotime.php
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    ..ah ecco!
    Grazie!

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    ..scusa ancora.

    il mio problema è far riconoscere a php "2004-07-31" come una data.

    Ho provato la funzione strtotime()
    Dovrebbe trasformare la stringa in un timestamp data

    ma se faccio strtotime(2003-08-04) mi restituisce un valore errato, o meglio se uso date mi da valori sbagliati.
    Dove sbaglio?

  5. #5
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Dunque..
    innanzitutto un chiarimento sintattico di base:
    una espressione come 2004-07-31 scritta come vedo nelle tue righe non è corretta perché deve intanto essere inclusa tra virgolette "2004-07-31" (o apici), in quanto è un'espressione stringa. Se scrivi:
    nomefunzione(2004-07-31);
    senza virgolette non fai altro che dare come parametro alla funzione il risultato di due sottrazioni tra i numeri che hai indicato, cioè 2004 meno 7 meno 31.
    Se vuoi la prova basta che in una pagina fai:
    <? echo(2004-07-31); ?>
    e vedrai come risultato 1996.
    E mi sembra logico, no?
    Dunque le espressioni di quel tipo di data vanno indicate come stringhe.

    Tornando alla questione della data, do per scontato che stai utilizzando il formato anno-mese-giorno perché è il formato DATE di MySQL, no?
    Bene, dunque se fai la tua query al database avrai diciamo il risultato del record corrente in un array, diciamo $row, il tipico:
    Codice PHP:
    $row = mysql_fetch_array($result) or die();
    Ora se vuoi per esempio scrivere sulla pagina come risultato la data di un campo "data" del record, sai che se scrivi solo:
    echo $row['data'];
    ti vedi sulla pagina un brutto: 2004-07-31

    Dunque suppongo che ora vuoi mostrare una data più "presentabile" e vuoi sapere come farlo bene, ok ti consiglio questo metodo:

    Codice PHP:
    $ladata = date('j/m/Y', strtotime($row['data']));
    echo
    "Ecco la data: $ladata";
    Che la mostra nella forma più comune qui in italia giorno/mese/anno, ma puoi scegliere tra migliaia di combinazioni tramite la funzione date e i codici data del primo parametro.

    Tutto questo casino spiegato qui sopra poteva semplicemente essere sostituito con una semplice soluzione:
    metti le virgolette a quell'espressione data, cioè:
    echo strtotime("2003-08-04");

    e tutto funziona.. ma sarebbe stato troppo semplice e poco educativo :grin:
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  6. #6
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Ecco perchè scleravo!
    il problema erano le virgolette!
    Grazie mucio!

    ...il problema è che fino a 2 giorni fà usavo solo asp, quindi in php sono un pò "spaesato"!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •