Hoe add je 6 uur toe aan een timestamp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicky van boven

nicky van boven

10/09/2011 01:39:28
Quote Anchor link
hee
title says it all

Hoe voeg je 6 uur toe aan een timestamp als:
2011-09-08 20:33
 
PHP hulp

PHP hulp

22/11/2024 01:30:08
 
- SanThe -

- SanThe -

10/09/2011 06:29:51
Quote Anchor link
Dit: 2011-09-08 20:33 is geen timestamp.
Gewijzigd op 10/09/2011 06:30:13 door - SanThe -
 
Nicky van boven

nicky van boven

10/09/2011 12:22:14
Quote Anchor link
oh...

Toevoeging op 10/09/2011 12:23:23:

maar toch, hoe add ik 6 uur aan die string
oorspronkeling is het trouwens wel een timestamp. maar omdat de secondes niet zo belangrijk waren, heb ik het ingekort door de timestamp te zetten in een substr($timestamp, -3);

dus, hoe doe je dat?
 
- SanThe -

- SanThe -

10/09/2011 13:15:47
Quote Anchor link
Als het echt een timestamp is kan je er gewoon 6*3600 bij optellen.
 
Robert  dat ben ik

Robert dat ben ik

10/09/2011 13:18:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$zesuurlater
= 6*3600;
$time = time();
$uitkomst = $time+$zesuurlater;
echo $time.' plus '.$zesuurlater.' dan kom je op: '.$uitkomst.' dat is 6 uur later<br />';

//of
echo time()+3600; //geeft zelfde resultaad als hierboven. 1315653269 plus 3600
?>
Gewijzigd op 10/09/2011 13:19:13 door Robert dat ben ik
 
Martijn L

Martijn L

10/09/2011 13:21:34
Quote Anchor link
ik doe dat altijd zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
    = "SELECT UNIX_TIMESTAMP(datum) AS datum,0 FROM tabelnaam";
$query    = mysql_query($sql);
$fetch    = mysql_fetch_object($query);

// 1 uur is 3600 seconden

$zesuur    = $fetch->datum+21600;
$date    = date("Y-m-d H:i:s", $zesuur);

echo $date;
?>


Toevoeging op 10/09/2011 13:23:44:

Robert dat ben ik op 10/09/2011 13:18:40:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$zesuurlater
= 6*3600;
$time = time();
$uitkomst = $time+$zesuurlater;
echo $time.' plus '.$zesuurlater.' dan kom je op: '.$uitkomst.' dat is 6 uur later<br />';

//of
echo time()+3600; //geeft zelfde resultaad als hierboven. 1315653269 plus 3600
?>




Maar dat werkt niet als je in de database je gegevens in datetime hebt staan.
 
Robert  dat ben ik

Robert dat ben ik

10/09/2011 13:28:09
Quote Anchor link
Martijn L op 10/09/2011 13:21:34:
ik doe dat altijd zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
    = "SELECT UNIX_TIMESTAMP(datum) AS datum,0 FROM tabelnaam";
$query    = mysql_query($sql);
$fetch    = mysql_fetch_object($query);

// 1 uur is 3600 seconden

$zesuur    = $fetch->datum+21600;
$date    = date("Y-m-d H:i:s", $zesuur);

echo $date;
?>


Toevoeging op 10/09/2011 13:23:44:

Robert dat ben ik op 10/09/2011 13:18:40:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$zesuurlater
= 6*3600;
$time = time();
$uitkomst = $time+$zesuurlater;
echo $time.' plus '.$zesuurlater.' dan kom je op: '.$uitkomst.' dat is 6 uur later<br />';

//of
echo time()+3600; //geeft zelfde resultaad als hierboven. 1315653269 plus 3600
?>




Maar dat werkt niet als je in de database je gegevens in datetime hebt staan.



Ik zie hem nergens over een database praten,
Gewijzigd op 10/09/2011 13:29:50 door Robert dat ben ik
 
Martijn L

Martijn L

10/09/2011 13:52:09
Quote Anchor link
Ik ook niet maar ik zie hem überhaupt weinig info geven:O
 
Robert  dat ben ik

Robert dat ben ik

10/09/2011 14:42:51
Quote Anchor link
yeps :P
 
Vincent Huisman

Vincent Huisman

10/09/2011 14:50:08
Quote Anchor link
martijn, dat soort dingen moet je gewoon met sql afhandelen
 
Nicky van boven

nicky van boven

10/09/2011 20:23:26
Quote Anchor link
hee sorry
ik was aan het werk vandaag.

uhm, ik heb het nog niet getest wat jullie hebben gezegd, maar allereerst; dank jullie wel voor de adviezen.
het is een database timestamp, het is erin gezet met NOW() en een sql functie met onchange ofzo.
het zijn dus 2 timestamps
maar die server is amerikaans, vandaar dat ik bij het weergeven 6 uur erbij op wil tellen.
ik kan de php.ini niet veranderen ofzo, dus het moet handmatig

ik ga even wat proberen
waar ik gisteren was gekomen was dit :p
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$exp=explode($lijst->timestamp,":");
$xp=explode($exp['0']," ");
$xpp=$xp+6;
$time=$xp['0']." ".$xpp.":".$exp['1'];
$lijst->timestamp = $time;


Toevoeging op 10/09/2011 20:35:59:

Martijn L op 10/09/2011 13:21:34:
ik doe dat altijd zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
    = "SELECT UNIX_TIMESTAMP(datum) AS datum,0 FROM tabelnaam";
$query    = mysql_query($sql);
$fetch    = mysql_fetch_object($query);

// 1 uur is 3600 seconden

$zesuur    = $fetch->datum+21600;
$date    = date("Y-m-d H:i:s", $zesuur);

echo $date;
?>


Toevoeging op 10/09/2011 13:23:44:

Robert dat ben ik op 10/09/2011 13:18:40:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$zesuurlater
= 6*3600;
$time = time();
$uitkomst = $time+$zesuurlater;
echo $time.' plus '.$zesuurlater.' dan kom je op: '.$uitkomst.' dat is 6 uur later<br />';

//of
echo time()+3600; //geeft zelfde resultaad als hierboven. 1315653269 plus 3600
?>




Maar dat werkt niet als je in de database je gegevens in datetime hebt staan.


ik probeerde dit:
$zesuurr = $lijst->timestamp+21600;
$changed = date("Y-m-d H:i:s", $zesuurr);
$zesuur=$lijst->created+21600;
$created = date("Y-m-d H:i:s", $zesuur);


en er kwam uit:
1970-01-01 01:33

n.b.: bij beide variabelen ($changed en $created) heb ik substr($variable,-3); gebruikt voordat ik ze echo. dus vandaar geen secondes.
 
Martijn L

Martijn L

10/09/2011 22:03:37
Quote Anchor link
Dat komt omdat 21600 in de datum notatie 1970-01-01 07:00:00 weergeeft.

Hoe jij dan aan eerdere tijd komt vraag ik mij af

In elk geval jou database weergeeft niet wat hij moet weergeven


EDIT:

Als jij echo $lijst->timestamp; neerzet wat staat er dan?
Gewijzigd op 10/09/2011 23:06:18 door Martijn L
 
Nicky van boven

nicky van boven

10/09/2011 23:34:30
Quote Anchor link
echo $lijst->timestamp weergeeft:
2011-09-08 20:08:30
 
- SanThe -

- SanThe -

11/09/2011 00:04:21
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo date('Y-m-d H:i:s', strtotime($lijst->timestamp)+6*3600);
?>
Gewijzigd op 11/09/2011 00:04:39 door - SanThe -
 
Martijn L

Martijn L

11/09/2011 00:37:45
Quote Anchor link
Is dit niet goed dan?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sql
    = "SELECT UNIX_TIMESTAMP(timestamp) AS timestamp,0 FROM tabelnaam";
$query    = mysql_query($sql);
$lijst    = mysql_fetch_object($query);

// 1 uur is 3600 seconden

$zesuur    = $lijst->timestamp+21600;
$date    = date("Y-m-d H:i:s", $zesuur);

echo $date;
?>
 
Nicky van boven

nicky van boven

11/09/2011 00:51:22
Quote Anchor link
hee san the, het werkt!
thx!

@martijn, ik had een foutje gemaakt met de variable naam. ik had $lijst->changed opgeschreven, ipv $lijst->timestamp
sorryyy jouw script werkt ook!
 



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.