Hoe kan ik deze timestamp krijgen met PHP?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Snelle Jaap

Snelle Jaap

22/07/2020 13:38:03
Quote Anchor link
Op welke manier kan ik een timestamp krijgen in dit formaat: 2020-07-22T00:15:00+02:00 ?

Ik heb een lange array waar twee waardes in staan.

Voorbeeld:

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
Array
(
    [payload] => Array
        (
          

            [1] => Array
                (
                    [van] => 2020-07-22T00:15:00+02:00
                    [tot] => 2020-07-22T00:30:00+02:00
                    [informatie] = testwaarde1
                )

            [2] => Array
                (
                    [van] => 2020-07-22T00:30:00+02:00
                    [tot] => 2020-07-22T00:45:00+02:00
                    [informatie] = testwaarde2
                )
        )

)


In deze hele array moet ik de key vinden waar van en tot binnen de huidige tijd vallen. Dus as het 00:18 is moet hij de waardes uit de 1e key pakken.

Hoe kan ik dat het beste aanpakken? Ik dacht om de huidige tijd in een soortgelijk formaat te gieten en dan te kijken of die binnen van en tot valt via datetime (als dit werkt). Is er een betere manier?
Gewijzigd op 22/07/2020 13:38:40 door Snelle Jaap
 
PHP hulp

PHP hulp

26/09/2020 00:19:58
 
Ramon van Dongen

Ramon van Dongen

22/07/2020 13:40:33
Quote Anchor link
strtotime(); ?
 
Thomas van den Heuvel

Thomas van den Heuvel

22/07/2020 17:10:08
Quote Anchor link
2020-07-22T00:15:00+02:00 is een ISO-standaard, dit kun je dus gebruiken om een DateTime object te bouwen. Het is vrij makkelijk en handig om met datums te werken en te rekenen via de DateTime classes.

Vervolgens zou je een soortgelijk formaat kunnen gebruiken om vergelijkingen te doen om na te gaan in welk interval de "huidge tijd" valt. Hierbij moet je wel opletten dat je in eenzelfde tijdszone rekent, want "nu" (de tijd) voor ons betekent iets anders als "nu" voor iemand uit New York.

Je zou dus zoiets kunnen doen:
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
29
30
31
32
<?php
$in
= array(
    'payload' => array(
        1 => array('van' => '2020-07-22T00:15:00+02:00', 'tot' => '2020-07-22T00:30:00+02:00', 'informatie' => 'testwaarde1'),
        2 => array('van' => '2020-07-22T00:30:00+02:00', 'tot' => '2020-07-22T00:45:00+02:00', 'informatie' => 'testwaarde2'),
    ),
);


$tz = new DateTimeZone('Europe/Amsterdam');
$format = 'Y-m-d H:i:s';
$now = new DateTime('2020-07-22 00:18', $tz); // normaal gesproken zou dit de waarde 'now' (huidige datum+tijd) hebben

$index = false;
foreach ($in['payload'] as $k => $v) {
    $start = new DateTime($v['van']); // indien de timestamp een ingebouwde timezone heeft wordt het tweede argument genegeerd
    $end = new DateTime($v['tot']);

    // van en met $start, tot en zonder $end, want deze intervallen overlappen
    if ($start <= $now && $now < $end) {
        $index = $k;
        break;
    }
}


if ($index === false) {
    echo 'interval not found';
}
else {
    echo 'interval found on index '.$index.'<br>';
    echo 'current time: '.$now->format($format).'<br>';
    echo 'this is between '.$in['payload'][$index]['van'].' and '.$in['payload'][$index]['tot'].'<br>';
}

?>
[end]

edit: vereenvoudiging na de tip van @Ward
Gewijzigd op 23/07/2020 14:15:40 door Thomas van den Heuvel
 
Ward van der Put
Moderator

Ward van der Put

23/07/2020 12:48:36
Quote Anchor link
Vanaf PHP 5.2.2 kun je DateTime-objecten direct met < en > vergelijken.

Als de "van"-DateTime > de gezochte DateTime, kun je dat tijdvak overslaan (en hoef je de "tot"-DateTime niet eens meer te converteren en controleren).

Als die array met DateTime-tijdvakken afkomstig is uit een database, dan zou ik overigens overwegen om het zoeken van een geschikt tijdvak te verplaatsen naar een query.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/07/2020 14:14:58
Quote Anchor link
En mogelijk kun je dit alles (deels) omdraaien. Indien het allemaal intervallen van een kwartier betreft (of als dit op een of andere manier vastligt), dan zou je ook van tevoren kunnen bepalen binnen welk tijdvak een tijd valt, en dan zou je specifiek naar dit tijdvak kunnen zoeken. Dit is waarschijnlijk ook waar je naartoe wilt als je hier een query voor bakt.
 



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.