/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvorfor giver dette script en forkert dato~
Fra : ENielsen


Dato : 29-10-11 03:02

Hej. Jeg kører et script der gemmer billeder fra et webcam. Filnavnene
er dagsdato og tid efterfulgt af billednavn; eks.
2011-10-29_0715_webcam.jpg
Problemet er at det "tidstempel" der genererers ikke passer med den
aktuelle tid. Forskellen er efterhånden op til et par timer?
Er det scriptet der er noget galt med?

<?php
$url = 'http://www.camping-brunner.at/cam/camping_brunner.jpg';
$imgData = file_get_contents($url);
$imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';

$fp = fopen('./webbilleder/'.$imgName,'wb');
fwrite($fp,$imgData);
fclose($fp);
?>

Skriptet køres automatisk af cronjob.de og datoerne på deres server er
OK.

Erik

 
 
Karl Erik Christense~ (29-10-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 29-10-11 13:48

On 29-10-2011 11:01, ENielsen wrote:
> $imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';

Prøv at undersøge din date erklæring. Er den ok?

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://produceret-i.dk/ - Køb danske produkter
http://webdesign.ranunkelvej.com - Artikler om webdesign

Birger Sørensen (29-10-2011)
Kommentar
Fra : Birger Sørensen


Dato : 29-10-11 14:16

ENielsen skrev den 10/29/2011:

> $imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';

Afhængig af PHP version, kan der være problemer med date/time
funktioner, hvis der ikke angives en timezone.
Se evt.
http://dk.php.net/manual/en/function.date-default-timezone-set.php
Så enten vær sikker på, at du har en timezone i php.ini, eller brug
funktionen til at sætte en.
Ellers kan jeg ikke se noget galt - det eneste, at serverens ur er
off..

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Karl Erik Christense~ (29-10-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 29-10-11 15:19

On 29-10-2011 15:15, Birger Sørensen wrote:
> ENielsen skrev den 10/29/2011:
>
>> $imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';
>
> Afhængig af PHP version, kan der være problemer med date/time
> funktioner, hvis der ikke angives en timezone.
> Se evt.
> http://dk.php.net/manual/en/function.date-default-timezone-set.php
> Så enten vær sikker på, at du har en timezone i php.ini, eller brug
> funktionen til at sætte en.
> Ellers kan jeg ikke se noget galt - det eneste, at serverens ur er off..
>
> Birger
>

Men *jeg* kan se noget galt

$imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';

skal være:
$imgName = date("Y-m-d_H:i").'_camping_brunner.jpg';

fordi på billedet vises også sekunder, og de er ikke medtaget i koden.
Hvis sekunder skal med, bør koden se således ud:

$imgName = date("Y-m-d_H:i:s").'_camping_brunner.jpg';

Jeg tror ikke han selv kan sætte serverens timezone.

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://produceret-i.dk/ - Køb danske produkter
http://webdesign.ranunkelvej.com - Artikler om webdesign

Birger Sørensen (29-10-2011)
Kommentar
Fra : Birger Sørensen


Dato : 29-10-11 15:25

Karl Erik Christensen kom med denne ide:
> On 29-10-2011 15:15, Birger Sørensen wrote:
>> ENielsen skrev den 10/29/2011:
>>
>>> $imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';
>>
>> Afhængig af PHP version, kan der være problemer med date/time
>> funktioner, hvis der ikke angives en timezone.
>> Se evt.
>> http://dk.php.net/manual/en/function.date-default-timezone-set.php
>> Så enten vær sikker på, at du har en timezone i php.ini, eller brug
>> funktionen til at sætte en.
>> Ellers kan jeg ikke se noget galt - det eneste, at serverens ur er off..
>>
>> Birger
>>
>
> Men *jeg* kan se noget galt
>
> $imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';
>
> skal være:
> $imgName = date("Y-m-d_H:i").'_camping_brunner.jpg';
>
> fordi på billedet vises også sekunder, og de er ikke medtaget i koden.
> Hvis sekunder skal med, bør koden se således ud:
>
> $imgName = date("Y-m-d_H:i:s").'_camping_brunner.jpg';
>
> Jeg tror ikke han selv kan sætte serverens timezone.
>
> Karl Erik.

Det kan du måske... men der er ikke noget galt. Man skal kun have :
med, hvis man vil have : i output - og det vil han nok ikke, i et
filnavn.
H er timer med 2 cifre og 24-timers format, i er minutter med 2 cifre -
altså f.eks. 1715 for et kvarter over fem om eftermiddagen.
Det bør virke.

Nej han kan ikke sætte serverens ur. Men han kan bestemme hvordan PHP
behandler de data der hentes fra uret.
Og som der står på den referede side, hvis der ikke er angivet en
timezone, kan tingene gå galt i de seneste versioner af PHP...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Karl Erik Christense~ (29-10-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 29-10-11 16:08

On 29-10-2011 16:25, Birger Sørensen wrote:

> Det kan du måske... men der er ikke noget galt. Man skal kun have : med,
> hvis man vil have : i output - og det vil han nok ikke, i et filnavn.
> H er timer med 2 cifre og 24-timers format, i er minutter med 2 cifre -
> altså f.eks. 1715 for et kvarter over fem om eftermiddagen.
> Det bør virke.
>
> Nej han kan ikke sætte serverens ur. Men han kan bestemme hvordan PHP
> behandler de data der hentes fra uret.
> Og som der står på den referede side, hvis der ikke er angivet en
> timezone, kan tingene gå galt i de seneste versioner af PHP...
>
> Birger
>

Prøv at kikke på billedet der er linket til.

Øverst står dataene med hvid skrift.

Jeg regnede med at det var fil-data der var sat ind, men det er ikke
sikkert.

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://produceret-i.dk/ - Køb danske produkter
http://webdesign.ranunkelvej.com - Artikler om webdesign

Birger Sørensen (29-10-2011)
Kommentar
Fra : Birger Sørensen


Dato : 29-10-11 16:18

Karl Erik Christensen har bragt dette til verden:
> On 29-10-2011 16:25, Birger Sørensen wrote:
>
>> Det kan du måske... men der er ikke noget galt. Man skal kun have : med,
>> hvis man vil have : i output - og det vil han nok ikke, i et filnavn.
>> H er timer med 2 cifre og 24-timers format, i er minutter med 2 cifre -
>> altså f.eks. 1715 for et kvarter over fem om eftermiddagen.
>> Det bør virke.
>>
>> Nej han kan ikke sætte serverens ur. Men han kan bestemme hvordan PHP
>> behandler de data der hentes fra uret.
>> Og som der står på den referede side, hvis der ikke er angivet en
>> timezone, kan tingene gå galt i de seneste versioner af PHP...
>>
>> Birger
>>
>
> Prøv at kikke på billedet der er linket til.
>
> Øverst står dataene med hvid skrift.
>
> Jeg regnede med at det var fil-data der var sat ind, men det er ikke sikkert.
>
> Karl Erik.

Det opfatter jeg som dato/tid/kommentar kameraet eller anden software
lægger på.
Det der spørges efter, er filnavn.
Men det kan selvfølgelig være, at det der spørges efter, er hvorfor de
to tidspunkter (billede og filnavn) ikke er ens - og måske er der et
problem med den der står på billedet.
Og her ville jeg klart tro mere på serverens end et inbygget urværk.
Serveren kan opdatere sig selv fra mange steder, så den burde være
nogenlunde rigtig.
Men vi er lidt ude i noget gætteværk her, når vi hverken ved noget om
det ene eller andet...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Karl Erik Christense~ (29-10-2011)
Kommentar
Fra : Karl Erik Christense~


Dato : 29-10-11 17:13

On 29-10-2011 17:18, Birger Sørensen wrote:

> Det opfatter jeg som dato/tid/kommentar kameraet eller anden software
> lægger på.
> Det der spørges efter, er filnavn.
> Men det kan selvfølgelig være, at det der spørges efter, er hvorfor de
> to tidspunkter (billede og filnavn) ikke er ens - og måske er der et
> problem med den der står på billedet.
> Og her ville jeg klart tro mere på serverens end et inbygget urværk.
> Serveren kan opdatere sig selv fra mange steder, så den burde være
> nogenlunde rigtig.
> Men vi er lidt ude i noget gætteværk her, når vi hverken ved noget om
> det ene eller andet...
>
> Birger
>

Det kan også skyldes at omtalte cron-job kører på uregelmæssige tidspunkter.

Karl Erik.

--
http://dmwebdesign.dk - DM i Webdesign
http://produceret-i.dk/ - Køb danske produkter
http://webdesign.ranunkelvej.com - Artikler om webdesign

ENielsen (29-10-2011)
Kommentar
Fra : ENielsen


Dato : 29-10-11 11:24

Hej. Problemet er løst. Supporteren hos One.com fortalte mig at
problemet skyldes at serverne hos dem er sat til en anden tidszone. Nu
er filen ændret som vist herunder og nu svarer filnavnet til den tid
der er "stemplet" på billederne.

Tak for jeres input.

// Erik

<?php
date_default_timezone_set('Europe/Copenhagen');
$url = 'http://www.camping-brunner.at/cam/camping_brunner.jpg';
$imgData = file_get_contents($url);
$imgName = date("Y-m-d_Hi").'_camping_brunner.jpg';

$fp = fopen('./webbilleder/'.$imgName,'wb');
fwrite($fp,$imgData);
fclose($fp);
?>


Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407780
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste