Laatste 10 wijzigingen in tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer / Innovatieve software / Virtual Re

Functieomschrijving Als .Net developer werken aan innovatieve software waar onder andere gebruik gemaakt wordt van Virtual Reality? Bijdragen aan een organisatie waar je uitgedaagd wordt om continu verbeteringen en ontwikkelpunten te ontdekken en door te voeren? Werken in de omgeving Putten? Reageer dan nu voor meer informatie! Het pro-actief aandragen van verbeteringen voor de bestaande applicatie; Ontwikkelen van nieuwe functionaliteiten; Doorvoeren van aanpassingen en wijzigingen; Verantwoordelijk voor koppelingen met andere systemen; Op de hoogte blijven van technische ontwikkelingen. Functie-eisen Hbo werk- en denkniveau; Een afgeronde IT gerelateerde opleiding; Minimaal 1 jaar professionele ervaring als developer; Aantoonbare kennis van C#; Initiatiefrijke

Bekijk vacature »

PHP Developers gezocht die van complexe online vra

Vacature Omschrijving Een grote klant is opzoek naar enthousiaste PHP developers (junior/medior/senior). De organisatie waar jij komt te werken ontwikkelt en bouwt succesvolle oplossingen voor complexe online vraagstukken zoals performance, usability en conversion. Daarnaast zorgen zij voor externe systemen ingericht voor productbeheer, point-of-sales en voorraadbeheer koppelt de organisatie probleemloos aan op eigen Magento gebaseerde webshops. Het is een informele organisatie waar de communicatielijnen kort zijn. Functieomschrijving Met drupal 8 of ShopWare realiseert de organisatie prachtige frond-ends op dynamische data uit allerlei systemen. Je houdt je in deze organisatie bezig met het ontwerpen, ontwikkelen en beheren van functionaliteiten van de applicaties

Bekijk vacature »

Pagina: « vorige 1 2

- SanThe -

- SanThe -

14/08/2019 12:23:39
Quote Anchor link
Dan zou dit moeten werken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    while($row = mysqli_fetch_array($result))
    {
      
        date_default_timezone_set('UTC');
        $datum = strtotime($row['time']);
        date_default_timezone_set('Europe/Brussels');
        echo "<tr>";
            echo "<td>" . date("D M d, Y G:i a", $datum) . "</td>";
            echo "<td>" . $row['Inp_6'] . "</td>";
        echo "</tr>";
    }

?>
 
PHP hulp

PHP hulp

14/10/2019 16:16:33
 
Geert Geerts

Geert Geerts

15/08/2019 09:47:51
Quote Anchor link
Werkt inderdaad.

Allemaal bedankt voor de hulp :-)
 
Thomas van den Heuvel

Thomas van den Heuvel

15/08/2019 16:35:11
Quote Anchor link
Simpelweg omdat iets werkt, maakt het nog niet juist.

- SanThe - op 14/08/2019 12:23:39:
Dan zou dit moeten werken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    while($row = mysqli_fetch_array($result))
    {
      
        date_default_timezone_set('UTC');
        $datum = strtotime($row['time']);
        date_default_timezone_set('Europe/Brussels');
        echo "<tr>";
            echo "<td>" . date("D M d, Y G:i a", $datum) . "</td>";
            echo "<td>" . $row['Inp_6'] . "</td>";
        echo "</tr>";
    }

?>

Ik zou deze aanpak niet volgen. Het "probleem" met bovenstaande code is dat je hier in principe de tijdszone van de applicatie vermengt met de tijdszone (van voorkeur) van een gebruiker en de geldende tijdszone ook elke iteratie van de loop aanpast. Na afloop van deze loop staat de tijdszone ook effectief ingesteld op Europe/Brussels wat onwenselijk is, tenzij elke andere snippet die datums en tijden gebruikt precies hetzelfde stramien (lees: pingpong spel) volgt.

Wat ik zou doen is zorgen dat je alles wegschrijft als UTC. En vervolgens, als je de datums ophaalt, deze definieert als zijnde UTC, en ze vervolgens bij weergave vertaalt naar de tijdszone-van-voorkeur. En die kan bijvoorbeeld uit een profiel of configuratie van de gebruiker komen.

Dit alles zonder aanpassing van de in de applicatie geldende tijdszone. Hier zouden ook geen aannames over moeten worden gedaan.

Dus zoiets:
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
<?php
$utcTZ
= new DateTimeZone('UTC'); // alles uit de database is UTC
$userTZ = new DateTimeZone('Europe/Brussels'); // gewenste tijdszone, komt bijvoorbeeld uit gebruikersprofiel
$userFormat = 'D M d, Y G:i a'; // het gewenste format, dit zou ook een voorkeur kunnen zijn

while ($row = mysqli_fetch_array($result)) { // <-- waarom geen fetch_assoc() trouwens?
    $date = new DateTime($row['time'], $utcTZ); // datum is UTC
    $formattedDate = $date->setTimeZone($userTZ)->format($userFormat); // datum in gewenste tijdszone+format
    ?>
<tr>
        <td><?php echo $formattedDate; ?></td>
        <td><?php echo $row['Inp_6']; ?></td>
    </tr><?php
}
?>

NB: je geeft expliciet UTC mee bij het creëren van $date, zodat het niet eens uitmaakt wat de op dat moment geldende tijdszone is. Dus zelfs al staat de tijdszone niet ingesteld op de tijdszone die je wellicht zou verwachten, dan werkt dit nog steeds. Hetzelfde kun je doen bij het wegschrijven zodat hiermee gegarandeerd is dat dit ook echt als UTC wordt weggezet.

Als datums en tijden relevant zijn in een applicatie, dan lijkt het mij onverstandig om dingen over te laten aan toeval, m.a.w. stel altijd zoveel mogelijk expliciet in.
Gewijzigd op 15/08/2019 16:48:22 door Thomas van den Heuvel
 

Pagina: « vorige 1 2



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.