time() countdown 24 uur

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick

patrick

19/11/2009 13:06:00
Quote Anchor link
Hoe zou je een functie kunnen maken die op een website aangeeft hoeveel uur en minuten er nog te gaan zijn alvorens het 18:00 uur is. Ik wil dit schrijven zodat ik kan aangeven wanneer de courier mijn klant zijn pakketje komt ophalen. Die komt namelijk elke dag om 18:00 uur.

Ik hoop dat jullie me op weg kunnen helpen.
 
PHP hulp

PHP hulp

23/11/2024 03:09:44
 
Mr.Ark

Mr.Ark

19/11/2009 13:08:00
 
Patrick

patrick

19/11/2009 13:09:00
Quote Anchor link
Hoi Mr Ark, ik wil het server-side doen, dan weet ik i.i.g. zeker dat de tijd altijd klopt. Vandaar dat ik een php oplossing zoek en niet een javascript en/of Ajax script..
 
- SanThe -

- SanThe -

19/11/2009 13:39:00
 
Emmanuel Delay

Emmanuel Delay

19/11/2009 13:58:00
Quote Anchor link
of zo-iets:
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
33
34
35
36
37
<?php
$verschil
= nog_te_gaan('18:00:00');

echo $verschil;

function
nog_te_gaan($tijd, $m_nu=null)
  {

    $m_nu = (empty($m_nu)?makeDatetimeObject('now'):$m_nu);
    list($H, $i, $s) = explode(':', $tijd);
    if ($m_nu->format('H') >= $H)  // indien je iets anders gebruikt dan "18:00:00", ook met minuten en/of seconden die niet 0 zijn, zou je daar ook op moeten controleren
      {
        $bestemming = mktime($H, $i, $s, $m_nu->format('m'), $m_nu->format('d')+1, $m_nu->format('Y'));
      }

    else
      {
        $bestemming = mktime($H, $i, $s, $m_nu->format('m'), $m_nu->format('d'), $m_nu->format('Y'));
      }

    $verschil = $bestemming - strtotime($m_nu->format('Y-m-d H:i:s'));
    $s = $verschil % 60;
    $i = ( ($verschil-$s) / 60 ) % 60 ;
    $H = ( ($verschil-$s-60*$i) / 3600 );
    
    return sprintf('%02d:%02d:%02d', $H, $i, $s);                   // eventueel return je het onder een ander formaat
  }
function
makeDatetimeObject($datum_string)
{

  try
  {
    return new DateTime($datum_string, new DateTimeZone('Europe/Berlin'));
  }

  catch (Exception $e)
  {

    return new DateTime("now", new DateTimeZone('Europe/Berlin'));
  }
}


?>


(kan waarschijnlijk efficiënter, maar het werkt, volgens mij)
Edit: functienaam aangepast, die van SanThe klonk beter dan de mijne
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Patrick

patrick

19/11/2009 14:07:00
Quote Anchor link
Super daar kan ik wat mee, bedankt...
 
Emmanuel Delay

Emmanuel Delay

19/11/2009 14:10:00
Quote Anchor link
Op dagen waarop het uur aangepast wordt, zal het misschien een foute waarde geven.
 



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.