Just nu i M3-nätverket
Jump to content

Varför får jag fel datum?


MickeMick1

Recommended Posts

Är det någon som kan tala om varför jag inte får det förväntade resultatet av nedanstående kodsnutt.

 

Tanken är att koden ska läsa senaste ändringsdatum på filen ($fil) och skriva ut det. Vad jag än gör så blir datumet alltid 1970-1-1.

 

Här är koden:

 

$date_str = getdate(filemtime($fil));

$year = $date_str["year"];

$mon = $date_str["mon"];

$mday = $date_str["mday"];

$date_str = "$year-$mon-$mday";

print("Senast uppdaterad $date_str");

Link to comment
Share on other sites

Testa att skriva ut varje variabel steg för steg och på det sättet kontrollera var felet uppkommer. Det låter lite som om du inte skulle ha en giltig fil varför filemtime skulle returnera 0. 0-datumet för unixsystem är 1 januari 1970

 

 

==Coleburn==

 

--------------------

"It takes a lot of knowledge to

really mess something up!"

 

Link to comment
Share on other sites

Finns filen $fil, eftersom filemtime($fil) måste returnera noll (0) för att du ska få det datumet.

 

Alternativ till ditt skript för att visa fildatum:

 

Om du ska ha skriptet i samma fil som du kollar datum på går det bra med:

echo "Senast uppdaterad: ".date("Y-m-d",getlastmod());

 

I annat fall:

echo "Senast uppdaterad: ".date("Y-m-d",filemtime ($fil));

 

 

 

 

Link to comment
Share on other sites

  • 4 years later...

Jag får också sammma feldatum med filemtime($file) (på filer som finns), har du kommit på det ?

 

Eller någon annan som vet ?

 

 

Nyinstallerat Apache och php

 

 

-

 

Link to comment
Share on other sites

Är du säker på att filen finns och att du angett sökvägen rätt? Se även till att ha varningar påslagna (när du felsöker). Så vad säger:

/* Om felrapportering inte redan är påslaget: */
error_reporting(E_ALL);
ini_set('display_errors', '1');

if (!file_exists($file))
{
 echo 'Filen finns inte...';
}

$date_str = date('Y-m-d', filemtime($file));
print("Senast uppdaterad $date_str");

 

Är modifieringstiden korrekt satt på filen, dvs vad visar ls -l filen_i_fråga?

 

Link to comment
Share on other sites

/* Om felrapportering inte redan är påslaget: */

error_reporting(E_ALL);

ini_set('display_errors', '1');

Jag får då

<b>Warning</b>: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for IMG_0226.jpg in <b>D:\public_html\getpics.php</b> on line <b>17</b><br />

January 01 1970 01:00:00.

 

Är modifieringstiden korrekt satt på filen, dvs vad visar ls -l filen_i_fråga?

Nu kör vi XP och datumen ser ok ut i explorer

 

Link to comment
Share on other sites

Jag får då

<b>Warning</b>: filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for IMG_0226.jpg in <b>D:\public_html\getpics.php</b> on line <b>17</b><br />

Vilket betyder antingen att filen inte finns eller att php inte har rättighet att kolla på filen, hur nu sånt funkar i XP.

Nu kör vi XP och datumen ser ok ut i explorer
OK. Då behöver du installera Cygwin för att köra ls ;)

 

Link to comment
Share on other sites

Aha, det är ju bara filnamnet utan katalognamnet den ligger i .... kan ju vara något med det som gör att filen inte verkar finnas.

 

- relativ nybörjare ;)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...