Kjapp og trygg hosting for Wordpress

Konvertere tall til dato php

Marketing

Medlem
Jeg har en database med registrerte brukere, og databasefeltet for registreringsdato er av type "int". Hvis man registrerte seg idag så ga datofeltet verdien 1350313106. Jeg ønsker å vise en tekst på nettstedet som dukker opp til registrerte brukere 2 dager etter registrering og som forsvinner etter 4 dager. Hvordan kan jeg konvertere tallet i databasen til dato?
 

adeneo

Medlem
Det skulle vel være unix tid, og det er vel ikke verre enn :

PHP:
<?php

$time = 1350313106;
echo date("Y-m-d", $time)

?>


Det står forholdsvis inngående om hvordan man konverterer datoobjekter i PHP manualen ?


PHP:
<?php
    $registrert = 1350313106;
    $to_dager =  date($registrert+172800);
    $seks_dager = date($registrert+518400);
    $i_dag = time();
    
    if ($i_dag>$to_dager && $i_dag<$seks_dager) {
        echo "Det er over to dager og under seks dager siden du registrerte deg !";
    }
?>
 
Sist redigert:

tyr897

Medlem
Det er et unix timestamp, som du kan formatere med date.

Eksempelvis vil dette skrive ut 15.10.2012
PHP:
echo date('d.m.Y', 1350313106);

Men det er enklere å regne med datoer i timestamp format, da kan du bare legge til eller trekke fra sekunder.

PHP:
$registered = 1350313106; // timestamp da registrering skjedde
$now = time(); // timestamp for akkurat nå
$from = 86400*2; // 86400 er sekunder i et døgn (60*60*24), så altså to dager
$to = 86400*4; // og fire dager

if (($registered + $from) >= $now && ($registered + $to) <= $now) {
  echo "Du registrerte deg for mellom to og fire dager siden";
}

Nå går overstående på tid, ikke dato. Ønsker du siste, må du runde av timestampene, enkleste måten er sikkert å kombinere date og strtotime.

PHP:
$registered = strtotime(date('Y-m-d', 1350313106)); // gir timestamp for 00:00 registreringsdagen
 
Topp