saaie tijd omzetten

Door Tim , 19 jaar geleden, 3.685x bekeken

Als je op youtube kijkt, zie je bij reactie's geen saaie "gepost op 2008/1/2 om 18:20 uur" maar bijvoorbeeld 1 Hour ago.
Dit kan jij ook op je web-site krijgen, door deze functie ergens neer te zetten en daarna je datum door de functie chance_time halen

Let op! zorg dat je datum er zo uitziet: "2008:02:21:18:41:57" dus "jaar:maand:dag:uur:minuut:seconden", en zorg dat je alles ingevuld hebt!

groeten.
Timmetje

p.s. $maand == date("m") is erg omslachtig, maar ik wist niets beters:P

Gesponsorde koppelingen

PHP script bestanden

  1. saaie-tijd-omzetten

 

Er zijn 11 reacties op 'Saaie tijd omzetten'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
19 jaar geleden
 
0 +1 -0 -1
In de gevallen waar je zoiets nodig hebt, zul je bijna altijd gebruik maken van een database waarin de gegevens opgeslagen zijn. Uiteraard gebruik je in zo'n geval gewoon de database om de datumweergave op te maken!

Waarom verlang je verder dat specifieke formaat? Wat is er mis met het standaard formaat van een datumtijdstempel 'yyyy-mm-dd hh:mm:ss'? Die is ook gewoon te exploden en hier kun je ook gewoon de betreffende gegevens uithalen...
Tim
tim
19 jaar geleden
 
0 +1 -0 -1
@ Blanche: Dit is omdat dit prettiger te lezen is.
En het was gewoon om te testen of ik dit kon:P
Frank -
Frank -
19 jaar geleden
 
0 +1 -0 -1
Met dit soort zaken wil je vooral de actualiteit van content uitdrukken, een artikel van X-tijd oud, wil je niet meer extra benadrukken. Deze nadruk heeft geen betekenis meer, sterker nog, de artikelen die wel actueel zijn, lijden hier onder.

In PostgreSQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    content,
    CASE
        WHEN AGE(NOW(), stempel) < INTERVAL '1 HOUR' THEN TO_CHAR(AGE(NOW(), stempel), 'MI') || ' minuten oud'
    END AS extra
FROM
    artikelen;

De interval kun je zelf instellen, 30 MINUTES doet het natuurlijk ook prima.

Ps. De tekst ' minuten oud' wil je niet in je query hebben, het is even een voorbeeldje. Voordat iemand dáár weer over begint... ;)

Edit: @Blanche: Het formaat is vooral handig wanneer jouw bezoekers in verschillende tijdzones zitten. 12 minuten geleden is 12 minuten geleden, of dat nu om 15:14 of 19:14 lokale tijd (waar?) was, dat doet niet ter zake.

@Bas: Kun je dit ook even inbouwen in PHPHulp? ;)
Tim
tim
19 jaar geleden
 
0 +1 -0 -1
*trots*
Maar waarom zou ik het om het uur refreshen??
Dat snap ik niet?
Frank -
Frank -
19 jaar geleden
 
0 +1 -0 -1
Om het uur refreshen? Wat bedoel je daar mee te zeggen?

In mijn voorbeeld-query geef ik de content van minder dan een uur oud een extra label mee met de ouderdom in minuten. Wanneer het ouder is, dan is het verder niks meer bijzonders en heeft dit label geen zin en wordt dus ook niet aangemaakt. Zie bv. www.cnn.com die werken daar ook mee.

Door de interval aan te passen, kun jij zelf bepalen welke tijdsinterval jij wilt hanteren.
Joren de Wit
Joren de Wit
19 jaar geleden
 
0 +1 -0 -1
@Frank: Ik doelde op dit formaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$tijd
= "0:0:0:0:0:0";
?>

Dit is gewoon je reinste onzin...
Frank -
Frank -
19 jaar geleden
 
0 +1 -0 -1
@Blanche: Ah, op die fiets. Daar heb ik ook maar niet op gereageerd, het leek nog het meeste op een fout ip-adres ;)

Edit: Mijn query toont wel aan hoe simpel je dit met SQL kunt oplossen.
Lode
Lode
19 jaar geleden
 
0 +1 -0 -1
Noem je toch geen script?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
//php5.2+
$a = new DateTimeZone('America/Los_Angeles');
echo 'local LA time: '.$a->format('d-m-Y H:i:s').'<br/>'.PHP_EOL;

$b = new DateTimeZone('Europe/Amsterdam');
echo 'local Amsterdam time: '.$b->format('d-m-Y H:i:s').'<br/>'.PHP_EOL;
?>


dit werkt ook met '-1 week' e.d. net als strtotime();

en dan nog rekenen doe ik liever in SQL en dat kan heel ingewikkeld worden soms: http://www.phphulp.nl/forum/showtopic.php?cat=1&id=44729&lasttopic=1

Maar meer als een snippet zou ik het zoiezo niet durven noemen...
Joren de Wit
Joren de Wit
19 jaar geleden
 
0 +1 -0 -1
@Lode: PHP 5 vereist uiteraard (maar goed, welke goede host heeft dat nu nog niet).

Verder moet ik zeggen dat ik nog bar weinig gebruik heb gemaakt van die klasse. Het rekenen met data en tijden doe ik allemaal in de database en de weergave ervan wordt verzorgt door de template engine. Er komt dus helemaal geen PHP aan te pas :-)
Lode
Lode
19 jaar geleden
 
0 +1 -0 -1
ik ook zie link naar de een van de bizarste quesries die ik ook heb moeten maken iig...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Tim
tim
19 jaar geleden
 
0 +1 -0 -1
Bedankt voor de tips!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. saaie-tijd-omzetten

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.