Datum uit timestamp halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

09/05/2022 12:03:06
Quote Anchor link
Hallo,

Ik heb een timestamp die ik wil omzetten naar timestamp zonder dag-maand-jaar.

Heb ik nodig om te bepalen of de begintijd groter is dan de eindtijd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$timestamp_vanaf = 1652025690;
$timestamp_tot = 1652054423;
$vanaf = strtotime( date( 'Hi', intval($timestamp_vanaf) ) );
$tot = strtotime( date( 'Hi', intval($timestamp_tot) ) );

if ($vanaf > $tot) {
  echo 'Begintijd is groter dan eindtijd';
}


Ik weet dat ik hiermee de timestamp omzet naar normaal datum-formaat, en dan weer terugzet naar timestamp.
Dus ik vraag me af, is dit een goede manier?

Guido
 
PHP hulp

PHP hulp

26/06/2022 13:05:28
 
Ivo P

Ivo P

09/05/2022 12:57:41
Quote Anchor link
Dus als in:

15 mei 2004 15:41 is groter dan 31 dec 2022 10:04?
omdat
15:41 groter is dan 10:04



Toevoeging op 09/05/2022 13:02:00:

je hoeft dan trouwens niet gebruik te maken van strtotime():

1541 is al te vergelijken met 1004 (als in mijn voorbeeld).

Maar strtotime(1541) zal dan uitgaan van 1541 seconden na 1970-01-01 00:00, dus dat wordt vertaald naar globaal een 25 of 30 minuten. (aangenomen dat strtotime() daar al een soort van datum of tijd in herkent)
 
Guido  -

Guido -

09/05/2022 13:23:41
Quote Anchor link
Hoi Ivo,

Dank voor je reactie. Ik besef me nu dat ik te moeilijk denk! strtotime hoeft inderdaad helemaal niet.

Ik hoef overigens alleen de waarde van "vanaf" met "tot" te vergelijken, meer niet. Dus de dag en een tijdzone zijn in mijn geval niet nodig.

Guido
Gewijzigd op 09/05/2022 13:24:19 door Guido -
 
Ivo P

Ivo P

09/05/2022 15:23:29
Quote Anchor link
dan zou ik sowieso niet het aantal seconden sinds 1970 gebruiken om zo'n tijdstip op te slaan.
Wat is er mis met 14:45 op te slaan

of 1445
 
Guido  -

Guido -

09/05/2022 15:51:15
Quote Anchor link
Hoi Ivo,

Het betreft een datum/tijd kiezer dus die slaat het als timestamp op.

Ik kan de hele timestamp natuurlijk met elkaar vergelijken (start- vs einddatum), maar ik wil dit afzonderlijk ook voor de start- en eindtijd doen. Overigens sla ik niets op daarvan, de vergelijking is dus alleen om een (fout)melding te tonen als begintijd groter dan eindtijd is..

Guido
 
Ivo P

Ivo P

09/05/2022 17:07:11
Quote Anchor link
maar dan lijkt het me logisch dat ook de datum groter of gelijk aan de andere datum is.

dus de vergelijking

$timestamp_vanaf < $timestamp_totaan

zou dan al voldoende zijn.
 
Guido  -

Guido -

09/05/2022 17:27:43
Quote Anchor link
Klopt helemaal, maar foutieve datum en tijd wil ik afzonderlijk van elkaar melden. Zodat duidelijk is welke onjuist is (datum of tijd).

Het is een eenvoudig script met invoervelden voor start- en einddatum + start- en eindtijd.
De start- en eindtijd is voor beide data hetzelfde. Dus beide timestamps bevatten dezelfde start- en eindtijd.

Guido
Gewijzigd op 09/05/2022 17:29:35 door Guido -
 
Adoptive Solution

Adoptive Solution

09/05/2022 17:33:00
Quote Anchor link
Je kan het input type time gebruiken.
Heb je direct de goede notatie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input id="time" type="time" name="time" value="10:48" />


Als je 2 input velden voor tijd hebt en beide zijn ingevuld kan je de waarden omdraaien als begintijd groter is dan eindtijd.
 
Guido  -

Guido -

09/05/2022 22:35:45
Quote Anchor link
Hoi,

Ik heb een select veld omdat ik de minuten in stappen van 5 wil (0, 5, 10, etc).

Overigens denk ik nu dat het logischer is om de begintijd aan de begindatum te koppelen en de eindtijd aan de einddatum. Nu gebruik ik tijd los van de datum.

Guido
 
Ward van der Put
Moderator

Ward van der Put

10/05/2022 17:08:46
Quote Anchor link
Als je er twee DateTimes van maakt, kun je daarna met een DateInterval gemakkelijk datums én tijden vergelijken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$timestamp_from
  = 1652025690;
$timestamp_until = 1652054423;

$from = new \DateTime();
$from->setTimestamp($timestamp_from);

$until = new \DateTime();
$until->setTimestamp($timestamp_until);

$interval = $from->diff($until);
?>
 



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.