Ical datum omzetten naar timestamp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Php knipper

php knipper

10/04/2020 15:59:37
Quote Anchor link
Hé,

Vanwege de corona maatregelen ben ik eens begonnen aan een oud project, het maken van een fotokadertje met agenda, weerbericht en nieuws met armbian, lamp en chrome.

Alles lukt, ik ben er tevreden over, enkel bij het kalender stuk loopt er iets mis. Ik haal de kalenders op via Caldav, en krijg hiermee de events in Ical. Deze zet ik om naar xml zodat ik er mee aan de slag kan.

De datum's komen binnen als 20200410T155000Z of 20200410 of 20200410T155000

Nu zou onderstaande functie hier een timestamp van moeten maken maar hij loopt soms achter

Input: 20200302T130000
Array ( [0] => 2020 [1] => 03 [2] => 02 [3] => 13 [4] => 00 [5] => 00 )
Output: 1583150400 (03/02/2020 @ 12:00pm (UTC))

of

Input: 19750528
Array ( [0] => 1975 [1] => 05 [2] => 28 [3] => 0 [4] => 0 [5] => 0 )
Output: 170463600 (05/27/1975 @ 11:00pm (UTC)) of "18/04/2020 12:00" op het scherm (moet 00:00 zij)

Het is niet de beste manier om het te doen, komt door de vele pogingen.

Ik vermoed dat het iets te maken heeft met de timezone maar weet niet hoe, wat en waar.

Heeft er iemand even tijd?

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
public static function toTimestamp($input, $timezone = null) {
    
    $ip = str_split($input); //20200402T141618Z
    $year = $ip[0].$ip[1].$ip[2].$ip[3];
    $month = $ip[4].$ip[5];
    $day = $ip[6].$ip[7];
    if(strpos($input, 'T') !== false) {
        $hour = $ip[9].$ip[10];
        $minite = $ip[11].$ip[12];
        $second = $ip[13].$ip[14];
    } else {
        $hour = 0;
        $minite = 0;
        $second = 0;
    }
    
    $date = new DateTime();
    if($timezone != null) {
        $date->setTimezone(new DateTimeZone($timezone));
    }
    $date->setDate($year, $month, $day);
    $date->setTime($hour, $minite, $second);
    return date_format($date, 'U');
}
 
PHP hulp

PHP hulp

26/05/2020 12:35:46
 
G P

G P

11/04/2020 23:44:45
Quote Anchor link
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
<?php

function toTimestamp($input, $timezone = null) {
    if ($timezone != null){
        date_default_timezone_set($timezone);
    }
else {
        date_default_timezone_set('UTC');
    }

    $str = preg_replace('/[^0-9.]+/', '', $input);
    return strtotime($str);
}


print date("d/m/Y H:i:s (e)", toTimestamp(19750528));

?>
 



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.