Datum en tijd
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)
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
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;
}
// 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;
}
Nu wordt $currentDateTime gevuld met (de naam doet het al vermoeden), de huidige datum + tijd.
Ik denk als je van regel 3 maakt:
Dat het al doet wat jij wil.
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.
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.
Zo simpel eigenlijk haha
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)
1
2
3
4
5
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;
}
// 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
Dat is niet zo moeilijk:"
Code (php)
Gewijzigd op 16/09/2014 10:04:58 door Frank Nietbelangrijk
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?
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
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.
Toevoeging op 16/09/2014 16:20:16:
Ik heb nu boven aan de pagina
Nu geeft hij de juiste tijd weer.