Visualizzazione dei risultati da 1 a 8 su 8

Discussione: da timestamp a date

  1. #1

    da timestamp a date

    se ho questo codice:
    codice:
    $ts_data_inizio = mktime (0,0,0,2,26,1993,1);
    $data_inizio_mysql = date('Y-m-d',$ts_data_inizio);
    die("la data è $data_inizio_mysql");
    mi stampa
    la data è 1993-02-25

    sono io che sbaglio qualcosa con il timestamp? cosa mi consigliate di fare per riportare la data corretta nel formato mysql?

  2. #2
    l'uiltimo parametro 1 dice che e' impostata l'ora legale. Siccome segni le ore 00:00:00 -1 e il 25 febbraio NON e' in ora legale ... torni alle 23:00:00 del giorno prima.

    togli l'ultimo parametro e mktime cerchera' di stabilirlo da se.

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

  3. #3
    Originariamente inviato da piero.mac
    l'uiltimo parametro 1 dice che e' impostata l'ora legale. Siccome segni le ore 00:00:00 -1 e il 25 febbraio NON e' in ora legale ... torni alle 23:00:00 del giorno prima.

    togli l'ultimo parametro e mktime cerchera' di stabilirlo da se.
    avevo usato quel parametro in base a questa discussione
    http://forum.html.it/forum/showthrea...readid=1075083

    se uso gmktime anzichè mktime risolvo qualcosa?

  4. #4
    Io uso questa funzione:
    codice:
    function now_to_mysql()
    {
      return mdate('%Y-%m-%d %h:%i:%s', now());
    }

  5. #5
    Originariamente inviato da l'evangelista
    avevo usato quel parametro in base a questa discussione
    http://forum.html.it/forum/showthrea...readid=1075083

    se uso gmktime anzichè mktime risolvo qualcosa?
    risolvere ... si deve prima conoscere cosa.

    gmmktime ti rende "sempre" l'ora GMT cioe' il Greenwich Mean Time. Dovresti quindi calcolare tu il delta e l'ora solare...

    Devi semplicemente usare la funzione mktime senza parametri per l'ora solare. Il sistema fara' da se. Ovvio che se tu dividi o moltiplichi il tempo con mezzi tuoi o con l'ultimo parametro di mktime, dovrai tenere conto tu delle variazioni dell'ora solare.

    Se devi convertire una data in formato usato da mysql e possiedi i valori della data non in formato timestamp, ma per esempio: 26/2/1993 basta esplodere e girare i dati...

    codice:
    list($giorno, $mese, $anno) = explode('/', '26/2/1993');
    
    $data_mysql = "$anno-$mese-$giorno";

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

  6. #6
    Originariamente inviato da kylnas1
    Io uso questa funzione:
    codice:
    function now_to_mysql()
    {
      return mdate('%Y-%m-%d %h:%i:%s', now());
    }
    NOW() e' una funzione di mysql e non di php se non erro...

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

  7. #7
    Originariamente inviato da piero.mac
    NOW() e' una funzione di mysql e non di php se non erro...
    Chiedo venia, è che ho creato anche la funzione now()...
    codice:
    function now()
    {
    	if ($type == 'gmt')
    	{
    		$now = time();
    		$system_time = mktime(gmdate("H", $now), gmdate("i", $now), gmdate("s", $now), gmdate("m", $now), gmdate("d", $now), gmdate("Y", $now));
    	
    		if (strlen($system_time) < 10)
    		{
    			$system_time = time();
    			log_message('error', 'The Date class could not set a proper GMT timestamp so the local time() value was used.');
    		}
    	
    		return $system_time;
    	}
    	else
    	{
    		return time();
    	}
    }

  8. #8
    grazie piero per il tuo aiuto. tra l'altro devo confrontare questo ts con quello generato da unix_timestamp di mysql, che funziona proprio come mktime() di php senza il parametro opzionale.

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.