Datum en tijd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roland Braat

Roland Braat

05/09/2014 10:34:48
Quote Anchor link
Met onderstaand stukje code word getoond hoe lang geleden het is dat het commentaar gegeven is op iets of iemand.
Ik wil deze omzetten naar een vaste datum (Vrij, 05.09.2014 om 09:23uur) maar weet niet hoe. Kan iemand mij hierbij helpen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static function formatDateDiffInStrings($dateTime) {
        // http://www.php.net/manual/en/datetime.diff.php#101029
        $currentDateTime = date('Y-m-d H:i:s');

        $seconds =  strtotime($currentDateTime) - strtotime($dateTime);

        if ($seconds == 0) return vtranslate('LBL_JUSTNOW');
        if ($seconds > 0) {
            $prefix = '';
            $suffix = ' '. vtranslate('LBL_AGO');
        } else if ($seconds < 0) {
            $prefix = vtranslate('LBL_DUE') . ' ';
            $suffix = '';
            $seconds = -($seconds);
        }

        $minutes = floor($seconds/60);
        $hours = floor($minutes/60);
        $days = floor($hours/24);
        $months = floor($days/30);

        if ($seconds < 60)    return $prefix . self::pluralize($seconds,    "LBL_SECOND") . $suffix;
        if ($minutes < 60)    return $prefix . self::pluralize($minutes,    "LBL_MINUTE") . $suffix;
        if ($hours < 24)        return $prefix . self::pluralize($hours,    "LBL_HOUR") . $suffix;
        if ($days < 30)        return $prefix . self::pluralize($days,        "LBL_DAY") . $suffix;
        if ($months < 12)    return $prefix . self::pluralize($months,    "LBL_MONTH") . $suffix;
        if ($months > 11)    return $prefix . self::pluralize(floor($days/365), "LBL_YEAR") . $suffix;
    }
 
PHP hulp

PHP hulp

28/03/2024 15:25:53
 
Ramon van Dongen

Ramon van Dongen

05/09/2014 12:43:49
Quote Anchor link
Voor zover ik het zo snel zie, is het enkel regel 3 aanpassen.

Nu wordt $currentDateTime gevuld met (de naam doet het al vermoeden), de huidige datum + tijd.
Ik denk als je van regel 3 maakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$currentDateTime
= '2014-09-05 09:23:00';
?>
Dat het al doet wat jij wil.
 
Roland Braat

Roland Braat

05/09/2014 13:07:59
Quote Anchor link
Even voor de duidelijkheid. Op dit moment als er commentaar gegeven word dan staat er als datum/tijd bij: "Commentaar gegeven 2 dagen geleden ( of 1 uur geleden ) maar er moet gewoon de datum komen staan.
 
Gerhard l

gerhard l

05/09/2014 13:31:49
Quote Anchor link
Als je je datum niet wilt omzetten, heb je deze functie niet nodig. Dus of je moet overal de formatDateDiffInStrings(x) om de vars heen weghalen, of je kan op regel 2 zetten: return $dateTime; dan ben je ook klaar.
 
Roland Braat

Roland Braat

05/09/2014 16:03:29
Quote Anchor link
Thx.

Zo simpel eigenlijk haha
 
Roland Braat

Roland Braat

16/09/2014 09:45:53
Quote Anchor link
Ik heb toch nog een vraagje. Ik wilde de datum formaat aanpassen naar een meer gangbaar formaat.
Dus ik dacht dan voeg ik dit toe $dateTime = date('d-m-Y H:i'); Maar op de manier dat ik het ingevoegd heb werkt het niet. Dan krijg ik gewoon de datum van vandaag zonder de $dateTime = date('d-m-Y H:i'); dan krijg ik de datum van wanneer het commentaar is. Iemand die mij nog een duwtje in de juiste weg kan geve?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
public static function formatDateDiffInStrings($dateTime) {
        // http://www.php.net/manual/en/datetime.diff.php#101029
        $dateTime = date('d-m-Y H:i');
        return $dateTime;    
    }
Gewijzigd op 16/09/2014 09:47:28 door Roland Braat
 
Eddy E

Eddy E

16/09/2014 10:03:11
Quote Anchor link
Date pakt standaard de huidige tijd, tenzij er een timestamp wordt meegegeven.
Dat is niet zo moeilijk:"

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$dateTime
= date('d-m-Y H:i', strtotime($dateTime));
?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/09/2014 10:03:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
public static function formatDateInString($dateTimeString) {
    $dateTime = new DateTime($dateTimeString);
    return $dateTime->format('d-m-Y H:i');    
}


echo formatDateInString('2014-09-05 09:23:00');
?>
Gewijzigd op 16/09/2014 10:04:58 door Frank Nietbelangrijk
 
Roland Braat

Roland Braat

16/09/2014 10:18:21
Quote Anchor link
Oke bedankt, dat werkt nu.
Mijn volgend probleempje is dat er een tijdverschil is van 2 uur. Dus als er om 10:00 uur commentaar gegeven word dan staat er 08:00 uur. Is dat een instelling van de database of kan dat opgevangen worden met de code?
 
Eddy E

Eddy E

16/09/2014 10:31:02
Quote Anchor link
Dat is waarschijnlijk een verschil in tijdzone.
Het zou zo maar kunnen dat je SQL-server op GMT werkt en je PHP niet.
En dat je, als het straks weer wintertijd hebt, nog maar 1 uur ernaast zit.

Tip: gebruik altijd de SQL-tijd.
Of zorg dat PHP dezelfde tijd krijgt als SQL.

Toevoeging op 16/09/2014 10:36:22:

Leesvoer: http://www.experts-exchange.com/Programming/Languages/Scripting/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html
 
Gerhard l

gerhard l

16/09/2014 12:40:55
Quote Anchor link
Je kan dan toch ook gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
public static function formatDateDiffInStrings($dateTime) {
        // http://www.php.net/manual/en/datetime.diff.php#101029
        return date('d-m-Y H:i', strtotime($dateTime)+7200);  //7200 is 2 uur  
}
 
Obelix Idefix

Obelix Idefix

16/09/2014 13:00:36
Quote Anchor link
@Gerhard: kans is aanwezig dat met de wintertijd het verschil 1 uur is. Hoe ga je dat dynamisch maken in code? Ga je er dan een if-constructie van maken?
Gewoon zorgen dat de juiste tijd in de database komt.
 
Willem vp

Willem vp

16/09/2014 13:38:19
Quote Anchor link
> Gewoon zorgen dat de juiste tijd in de database komt.

Wat ís de "juiste tijd"?

Het veiligste vind ik zelf om alles in UTC op te slaan in de database en pas bij het tonen op het scherm om te zetten naar de gewenste tijdzone.
 
Roland Braat

Roland Braat

16/09/2014 13:48:39
Quote Anchor link
Misschien dat de optie van gerhard l wel werkt. Dat weet ik niet. Als er een tijdverschil van 2 uur blijft dan werkt het.

Toevoeging op 16/09/2014 16:20:16:

Ik heb nu boven aan de pagina
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
date_default_timezone_set('Europe/Amsterdam');

Nu geeft hij de juiste tijd weer.
 



Overzicht Reageren

 
 

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.