Hi,

functie :echo date("H:i") zal de huidige tijd aangeven. (stel 17:22)

Hoe geef ik de huidige tijd plus 30 minuten aan? (dus 17:53)

beste groet,

David
Ik ga ervanuit dat je PHP gebruikt en dus zou ik [php]strtotime[/php] gebruiken:
<?php
echo date('H:i', strtotime('+ 30 minutes'));
?>

De strtotime geeft een datum/tijd terug, in dit geval de huidige tijd + 30 minuten. Met de date functie kun je dan het gewenste formaat pakken. Als 2e parameter kan je hier de datum/tijd geven, in dit geval degene die je terug krijgt van strtotime.
probeer deze eens :)

<?php
$tijdnu = strtotime("now");
echo date("H:i", strtotime('+30 minutes', $tijdnu));

?>
En wordt deze afgeraden of te omslachtig:

<?php
$timestamp = date("U")+(1800);

// Convert the timestamp
$date = date("D, d M Y", $timestamp);
$time = date("H:i", $timestamp);

// Echo out the timestamp
echo "<strong>Date: </strong>".$date."<br/ >";
echo "<strong>Time: </strong>".$time;
?>

[size=xsmall]Toevoeging op 24/09/2012 17:37:02:[/size]

iig bedankt Wouter en Martin,

kan weer verder.

mvg,
David
Marvin, die now is niet nodig. De 2e param is standaard now.

Afgeraden weet ik niet, maar ik geef altijd de voorkeur aan de PHP standaard functies ipv zelfgemaakte dingen die ong. hetzelfde doen.

Nog eentje die tegenwoordig helemaal in wordt:
<?php

$date = new DateTime();
// PT30M : PT => Period Time; 30M => 30 Minutes
$date->add(new DateInterval('PT30M'));

// of de, ietwat makkelijkere method:
$date->add(DateInterval::createFromDateString('+ 30 minutes'));

echo $date->format('D, d M Y');
echo $date->format('H:i');
?>

Of als je van functies houdt ipv object:
<?php
$date = date_create();
date_add($date, date_interval_create_from_date_string('30 minutes'));

echo date_format($date, 'D, d M Y');
echo date_format($date, 'H:i');
?>
David M op 24/09/2012 17:34:03

En wordt deze afgeraden of te omslachtig:

<?php
$timestamp = date("U")+(1800);

// Convert the timestamp
$date = date("D, d M Y", $timestamp);
$time = date("H:i", $timestamp);

// Echo out the timestamp
echo "<strong>Date: </strong>".$date."<br/ >";
echo "<strong>Time: </strong>".$time;
?>

[size=xsmall]Toevoeging op 24/09/2012 17:37:02:[/size]

iig bedankt Wouter en Martin,

kan weer verder.

mvg,
David


Het simpelste blijft toch altijd:
<?php
$now = time() + 1800:
?>

Niet versie afhankelijk en geen conversies waar PHP geen ster in is.
Via het datetime object (PHP 5 >= 5.2.0) kan het ook.
bv.

<?php
$date = date_create("now");
$now_time = $date->format('H:i:s');

// 30 minuten later bij optellen
$date->modify('+ 30 min');
$later_time = $date->format('H:i:s');

echo 'nu: ' . $now_time .'<br>30 minuten later: ' . $later_time;
?>

Daar hoef je helemaal niets om te rekenen. Je moet ook niet telkens via seconden werken. Je kan onmiddellijk een datetime formaat gebruiken om de datum/tijd te setten. Daarmee kan je bv. rechtstreeks bij het fetchen van een (database) record de row['datum_veld'] gebruiken.

bv.
<?php
$a = date_create('2012-09-15 12:13:00')
...
while($row = mysql_fetch_assoc($res)) {
$datum = date_create($row['datum']);
...
?>

Ik heb (vooral dan) mktime altijd gebruiksonvriendelijk gevonden. Het zorgt vaak ook voor situaties waarbij je de overgangen van zomer- op winteruur meestal niet in rekening neemt; en je redeneringsfouten maakt.
Met de Datetime class heb je dat niet.
Kris, dat heb ik ook al verteld :) Weet je trouwens dat je nu de procedurale en object kant van het DateTime object mixt? De date_create is van de procedurale en al het andere van het object. Je kan dan denk ik beter meteen objecten gebruiken:
<?php
$datum = new \DateTime('2012-09-15 12:13');
?>
O, sorry, daar had ik overgelezen.

Ik vind date_create wel een handige wrapper. Tja, je hebt wel gelijk.

Reageren