Vindstille Skrevet 10. mars 2006 Del Skrevet 10. mars 2006 Har noen spørsmål jeg lurer på når det gjelder datobehandling i PHP. Hva er den enkleste måten å konvertere 2005-03-10 til 10. mars 2005. Hvordan får jeg ut "fredag" fra 2005-03-10. Og får man dette til å fungere if (dato = mindre enn 10 dager siden) { gjør dette} Lenke til kommentar
NH Skrevet 10. mars 2006 Del Skrevet 10. mars 2006 her er en unix_time lønnsomt som vi kan lage utifra datoen din med mktime() vi lar kode tale for seg selv: (les comment lines) <?php $dato = '2005-03-10'; $year = substr($dato, 0, 4); //hent de fire første siffer $month = substr($data, 5,2); //hent ut de 2 neste siffer $day = substr($data, 8, 2); //hent ut de to siste siffer $timestamp = mktime(0,0,0, $month, $day, $year); setlocale(LC_TIME, 'nor'); //sett språk og tidsregning til norsk (så vi får januar på norsk) $formated_date = ucwords(strftime("%A %d %B %Y", $timestamp)); //formated_date er nå en string som ser omtrent salik ut: 'Fredag 10 Mars 2006' (ja, på norsk) //vi kan nå også bruke timestamp til å telle dager: $time_limit = (((60 * 60) * 24) * 10); //10 dager if($timestamp + $time_limit > time()){ //mindre enn ti dager siden } if($timestamp + $time_limit < time()){ //mere enn ti dager siden } ?> Lenke til kommentar
Vindstille Skrevet 10. mars 2006 Forfatter Del Skrevet 10. mars 2006 Tusen takk. Jeg viste om den første metoden, men var usikker på om det fantes en mer lettvin metode. Lenke til kommentar
loketing Skrevet 10. mars 2006 Del Skrevet 10. mars 2006 (endret) evt kan datoen hentes slik: $time = strtotime('2005-03-10'); $date = date('d. F Y', $time); edit: for øvrig: $pattern = 'd. F Y'; $time = strtotime('2005-05-10'); $date = date($pattern, $time); $period ='10 days'; $date_last = date($pattern, strtotime('-'.$period, $time)); ser forresten nå at jeg ikke leste spørsmålet ditt riktig.. men det er ikke så veldig mye omskriving som skal til uansett. jeg må gå og ete nå, så lykke til! edit: noe sånt: $date = '2005-03-10'; $pattern = 'd. F Y'; $period = '-10 days'; $time = strtotime($date); $time_now = strtotime("$period", time()); $date = date($pattern, $time); if ($time<$time_now) { #gjør dette } else { #gjør noe annet } litt dårlig tid nå da. se heller på NH sitt innlegg, det er bedre.. lykke til! edit: og så glemte jeg setlocale()-tingen.. Endret 10. mars 2006 av loketing Lenke til kommentar
NH Skrevet 11. mars 2006 Del Skrevet 11. mars 2006 date() lar seg ikke konfigurere med setlocale(), så den vil ikke returnere norske navn på dager/måneder :S Om du ser på strftime() i manualen ser du alle mulighetene i formatet du kan ha, som er MANGE (string-from-time ) Lenke til kommentar
Zic0 Skrevet 11. mars 2006 Del Skrevet 11. mars 2006 (endret) her er en unix_time lønnsomt som vi kan lage utifra datoen din med mktime() vi lar kode tale for seg selv: (les comment lines) <?php $dato = '2005-03-10'; $year = substr($dato, 0, 4); //hent de fire første siffer $month = substr($data, 5,2); //hent ut de 2 neste siffer $day = substr($data, 8, 2); //hent ut de to siste siffer $timestamp = mktime(0,0,0, $month, $day, $year); setlocale(LC_TIME, 'nor'); //sett språk og tidsregning til norsk (så vi får januar på norsk) $formated_date = ucwords(strftime("%A %d %B %Y", $timestamp)); //formated_date er nå en string som ser omtrent salik ut: 'Fredag 10 Mars 2006' (ja, på norsk) //vi kan nå også bruke timestamp til å telle dager: $time_limit = (((60 * 60) * 24) * 10); //10 dager if($timestamp + $time_limit > time()){ //mindre enn ti dager siden } if($timestamp + $time_limit < time()){ //mere enn ti dager siden } ?> 5733062[/snapback] Jeg så bare starten av scriptet ditt men du kan bytte ut: $year = substr($dato, 0, 4); //hent de fire første siffer $month = substr($data, 5,2); //hent ut de 2 neste siffer $day = substr($data, 8, 2); //hent ut de to siste siffer med: list($year, $month, $day) = explode('-','2005-03-10'); Endret 11. mars 2006 av Zic0 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå