FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Jag letar efter en funktion där man skickar ett datum (timestamp tex) och får tillbaka hur många månader dagara å timmar sedan det var...
Har sett det på engelska men hittar inte ens det nu.. Finns det på svenska? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Det måste var lätt att koda. Ett formulär, 2 rader kod och så har man det. Kanske skriva det själv?
(Om du har varit webmaster sedan 2000 kanske du har en sida att visa förutom www.google.se i din profil - läs reglerna för forumet) |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
Tack för ditt givande svar.
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Klarade millennium-buggen
|
Ja, men varför letar man efter ett script som man skriver på 2 minuter?
1. Ta stränger omvandla till timestamp 2. Ta 1 och dra bort från dagens timestamp = antal sekunder 3. räkna ut timamr och minuter 4. Visa det! |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Citat:
Jag letade efter ett script som kunde visa antalet Minuter,Dagar,Månader sedan ett visst datum angets.. Jag hittade detta script i form av plugin till wordpress till slut.. Kod:
function time_since($older_date, $newer_date = false) { // array of time period chunks $chunks = array( array(60 * 60 * 24 * 365 , 'year'), array(60 * 60 * 24 * 30 , 'month'), array(60 * 60 * 24 * 7, 'week'), array(60 * 60 * 24 , 'day'), array(60 * 60 , 'hour'), array(60 , 'minute'), ); // $newer_date will equal false if we want to know the time elapsed between a date and the current time // $newer_date will have a value if we want to work out time elapsed between two known dates $newer_date = ($newer_date == false) ? (time()+(60*60*get_settings("gmt_offset"))) : $newer_date; // difference in seconds $since = $newer_date - $older_date; // we only want to output two chunks of time here, eg: // x years, xx months // x days, xx hours // so there's only two bits of calculation below: // step one: the first chunk for ($i = 0, $j = count($chunks); $i < $j; $i++) { $seconds = $chunks[$i][0]; $name = $chunks[$i][1]; // finding the biggest chunk (if the chunk fits, break) if (($count = floor($since / $seconds)) != 0) { break; } } // set output var $output = ($count == 1) ? '1 '.$name : "$count {$name}s"; // step two: the second chunk if ($i + 1 < $j) { $seconds2 = $chunks[$i + 1][0]; $name2 = $chunks[$i + 1][1]; if (($count2 = floor(($since - ($seconds * $count)) / $seconds2)) != 0) { // add to output var $output .= ($count2 == 1) ? ', 1 '.$name2 : ", $count2 {$name2}s"; } } return $output; } |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Usch, PHP suger verkligen.
Tur att jag blivit upplyst, så jag slapp förlora ytterligare 2 år på att utveckla PHP-färdigheter. |
|||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Klarade millennium-buggen
|
Men va tusan, kan ni inte subtrahera två datum/tid i PHP?
![]() (själv kan jag noll PHP, därav min hängande käke) |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Flitig postare
|
Citat:
|
|||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Klart det går att göra i PHP, är inte ens svårt. När man väl har antalet sekunder så är det bara att dividera upp dem i antalet månader, veckor eller vad man nu är ute efter.
Kod:
<?php echo floor((time() - strtotime($ditt_datum)) / (24*60*60)); ?> |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
|
|||
![]() |
![]() |
Svara |
|
|