24 uur controle datum

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niels Rietveld

Niels Rietveld

15/08/2015 17:55:50
Quote Anchor link
Hallo,

Ik wil graag dat als iemand een datum en tijd invuld, en dit binnen de 24 uur vooruit is, er komt; Dit is geen 24 uur vooruit!, ik wil alleen de if regel weten, rest kan ik zelf...
 
PHP hulp

PHP hulp

23/12/2024 12:21:09
 
- SanThe -

- SanThe -

15/08/2015 18:18:50
Quote Anchor link
Kijk eens naar de vele date functions op php.net.



Date/Time Functions

checkdate
date_add
date_create_from_format
date_create_immutable_from_format
date_create_immutable
date_create
date_date_set
date_default_timezone_get
date_default_timezone_set
date_diff
date_format
date_get_last_errors
date_interval_create_from_date_string
date_interval_format
date_isodate_set
date_modify
date_offset_get
date_parse_from_format
date_parse
date_sub
date_sun_info
date_sunrise
date_sunset
date_time_set
date_timestamp_get
date_timestamp_set
date_timezone_get
date_timezone_set
date
getdate
gettimeofday
gmdate
gmmktime
gmstrftime
idate
localtime
microtime
mktime
strftime
strptime
strtotime
time
timezone_abbreviations_list
timezone_identifiers_list
timezone_location_get
timezone_name_from_abbr
timezone_name_get
timezone_offset_get
timezone_open
timezone_transitions_get
timezone_version_get
Gewijzigd op 15/08/2015 18:24:58 door - SanThe -
 
Wouter J

Wouter J

15/08/2015 18:21:16
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (strtotime($userTime) > strtotime('+24 hours')) {
   // errors
}
?>
 
Niels Rietveld

Niels Rietveld

15/08/2015 18:33:56
Quote Anchor link
usertime is dus in dit geval de waarde die is ingevuld, maar werkt dit ook met een datum dan? Want het wordt ingevuld als DATETIME
 
- Ariën  -
Beheerder

- Ariën -

15/08/2015 18:43:24
Quote Anchor link
Probeer het eens..
 
Niels Rietveld

Niels Rietveld

15/08/2015 19:15:41
Quote Anchor link
Werkelijk geen idee, anders vroeg ik het niet..

Toevoeging op 15/08/2015 19:18:26:

Ik begreep het verkeerd, sorry, bedankt Wouter J
 
- Ariën  -
Beheerder

- Ariën -

15/08/2015 19:28:49
Quote Anchor link
Zet je datum uit je database eens in $userTime.
 
Niels Rietveld

Niels Rietveld

15/08/2015 19:32:22
Quote Anchor link
Ik gebruik het voor een formulier ;)
 
- Ariën  -
Beheerder

- Ariën -

15/08/2015 19:39:41
Quote Anchor link
En wat wil je daarmee zeggen?
 
Ferdi R

Ferdi R

15/08/2015 19:50:03
Quote Anchor link
Volgens mij zoek je zoiets.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(date('Y-m-d H:i:s', strtotime($_POST['datumvanformulier'])) < date('Y-m-d H:i:s', strtotime('+1 day'))
}

    // Datum is binnen de 24 uur
{
?>
Gewijzigd op 16/08/2015 15:11:29 door Ferdi R
 
Wouter J

Wouter J

16/08/2015 00:18:01
Quote Anchor link
Dat lijkt me niet, gegeven dat $_POST[...] een string is en date(...) ook een string is. De PHP < operator is niet kundig genoeg om door te hebben dat de strings een datum voorstellen en dat we hier dus een datum willen vergelijken. Wat PHP wel goed kan is nummers vergelijken, als we beide dus naar een timestamp kunnen transformeren kan dit wel.

Gelukkig returned strtotime() direct al een timestamp en hebben we dus alleen nog een manier nodig om $_POST[...] naar een timestamp te transformeren. Dit zou ook kunnen met strtotime(), mits we ons houden aan ISO-achtige tijd formaten: YYYY-MM-DD HH:II:SS. Anders moeten we terug vallen op de hierboven door SanThe genoemde datetime functies.
 

16/08/2015 02:11:29
Quote Anchor link
Ik zou zeggen kap met procedurele PHP crap en gebruik het Datetime Object.
Daarmee is alles zoveel makkelijker ipv elke keer met strtime te werken en weet ik wat voor trucjes uit te halen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$dateTimeObject
= new DateTime("2015-08-16 02:11:30");
?>
 



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.