Visualizzazione dei risultati da 1 a 9 su 9

Discussione: formato data

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314

    formato data

    Salve a tutti,
    mi succede una cosa strana e non so come uscirne.
    Ho scaricato un programma che fa da agenda.
    In effetti si tratta del classico calendario che ti evidenzia e rende cliccabile il giorno in cui c'è una qualche cosa, il programma si chiama php_agenda.
    Quando vado ad inserire la data in locale sul mio mysql tutto funziona perfettamente, quando, invece, la vado ad inserire sul mysql di aruba non funziona.

    il campo nella tabella è un INT 10

    e mentre in locale se scrivo nella form che invia i dati al db (04-10-2011) salva 1317679200 divermente sul mysql di aruba mi scrive 1270245600.

    preciso che in locale ho la Versione MySQL: 5.5.11 mentre su aruba vi è la Versione MySQL: 4.0.30-standard-log.

    felix

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221

    Re: formato data

    Originariamente inviato da felice211
    il campo nella tabella è un INT 10

    e mentre in locale se scrivo nella form che invia i dati al db (04-10-2011) salva 1317679200 divermente sul mysql di aruba mi scrive 1270245600.

    Ma se è un INT come fa a convertire la data
    ... sicuramente lo fa da qualche parte nel codice perchè se al DB gli passi "04-10-2011" su un campo INT te lo taglia e basta .... quindi devi trovare nel codice il punto in cui converti la data in timestamp e capire perchè su aruba non funziona

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Credo che ciò che salvi nel campo INT sia il timestamp.
    Se gli orari non sono corretti dipende dal default timezone (verifica nel php.ini).

    devi impostarlo su "Europe/Rome" agendo direttamente sul php.ini o al volo nel modo in cui segue

    Codice PHP:
    date_default_timezone_set('Europe/Rome'); 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Questo il file con cui invio i dati
    ti premetto che la versione di PHP sul server è la 4.4.9 mentre in locale è la 5.3.3
    dove metto
    Codice PHP:
    date_default_timezone_set('Europe/Rome'); 

    Codice PHP:
    <?php
    if (isset($_POST['submit']) && $_POST['submit']=="invia")

      
    $titolo addslashes($_POST['titolo']);
      
    $testo addslashes($_POST['testo']);
      
    $str_data strtotime($_POST['data']);
      include 
    'config.php';
      
    $sql "INSERT INTO appuntamenti (titolo,testo,str_data ) VALUES ('$titolo', '$testo', '$str_data')";
      if(
    $result mysql_query($sql) or die (mysql_error()))
      { 
        echo 
    $str_data ."
    "
    ;
        echo 
    "Inserimento avvenuto con successo.

        Vai al <a href=\"index.php\">Calendario</a>"
    ;
      }
    }else{
      
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Titolo:

    <input name="titolo" type="text">

    Testo:

    <textarea name="testo" cols="30" rows="8"></textarea>

    Data:

    <input type="text" name="data" id="data" size="10" style="font-size: 12px;" maxlength="10" readonly >
    <INPUT id="bdata" type="image" src="img/icone/ico_calendario.gif"
    align="top">
    <SCRIPT type="text/javascript

  5. #5
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221

    Re: formato data

    devi metterlo all'inizio dello script o comunque prima di
    Codice PHP:
    $str_data strtotime($_POST['data']); 

    Originariamente inviato da felice211
    e mentre in locale se scrivo nella form che invia i dati al db (04-10-2011) salva 1317679200 divermente sul mysql di aruba mi scrive 1270245600.
    Comunque se la differenza tra i due output è così elevata non credo sia un problema di fuso orario, tra questi due timestamp ci sono più di 500 giorni di distanza.
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Ho fatto una ricerca e ho scoperto che questa funzione non va con PHP 4.4.9.
    Questa è la struttura del campo:

    str_data int(10)

    C'è una funzione che possa andare per quella versione di PHP
    felix

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Codice PHP:
    ini_set("date.timezone","Europe/Rome"); 
    magari fai anche un echo di $str_data prima di passarla alla query, così vediamo se il problema è prima o dopo il DB
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    il problema è prima del DB infatti mi stampa già la data diversa
    felix

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Risolto.
    Ho aggiornato su aruba la versione di PHP da 4.4.9 A 5.3 e funziona perfettamente.
    Grazie
    felix

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.