You are not logged in.

wcf.regNote.message

max

Beginner

  • "max" started this thread

Posts: 34

  • Send private message

1

Thursday, February 22nd 2007, 4:28pm

date()

hallo ich habe kleines problem

das datum in der db wird so 2007-01-18 21:13:30
nun habe ich mir eine sitemap gebastelt und google will das datum ja so haben 2007-01-18 oder so 2005-02-21T18:00:15+00:00
wie kann ich das jetzt abändern ?

wenn ich es so mache
$map_date = date("Y-m-d", $data['datum']);
kommt nur 01.101.1970 raus

?(

Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Friday, February 23rd 2007, 9:51am

Mach doch vor der Zeile mal ein

echo $data['datuim']:

dann siehst Du ob in deiner Variable überhaupt was drin steht. Vor allem kann der date Befehl nicht einfach erkennen welches Format deine Zeitangabe hat. Deshalb geht der Befehl immer von einem Unix Timestamp aus. Du musst somit dein Datum erst in einen Timestamp verwandeln und dann kannst Du daraus wieder ein Datum bzw. eine Zeitangabe machen in dem Format wie Du es gerne möchtest.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

max

Beginner

  • "max" started this thread

Posts: 34

  • Send private message

3

Friday, February 23rd 2007, 12:54pm

gedacht habe ich es mir schon .. nur wie

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
while ($data mysql_fetch_array($sitemapdate))  
{
      $timestamp mktime($data['datum']);
      $map_date date('Y-m-d'$timestamp);  

    $map_item .= "
   <url>
      <loc>http://www.desktopvision.de/main/show/" $data['bild_id'] . "/" strtolower(dv_replace_specialchars($data['titel'])) . "</loc>
      <lastmod>$map_date</lastmod>
   </url>";
}


jetzt kommt bei jedem link 2007-05-17 raus

das sind alles böhmische Dörfer für mich ?(

Prometheus

Administrator

Posts: 3,278

  • Send private message

4

Friday, February 23rd 2007, 1:35pm

Kann sein das ich mich jetzt irre aber ich glaube $timestamp ist ne globale Variable welche Du nicht für diesen Zweck verwenden kannst. Ich glaub da steht immer der aktuelle Timestamp drin. Benenn die Variable mal um ob das einen Effekt hat.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

max

Beginner

  • "max" started this thread

Posts: 34

  • Send private message

5

Friday, February 23rd 2007, 2:22pm

habe ich gemacht ... es bleibt beim 2007-05-17

ist das denn richtig ?

$claws = mktime($data['datum']);
$map_date = date('Y-m-d', $claws);

CiL

Beginner

Posts: 37

  • Send private message

6

Friday, February 23rd 2007, 3:38pm

andere Idee

Warum läßt du das umwandeln des Datums nicht einfach von MySQL erledigen!

In der DB steht der Timstamp so in deiner Tabelle 2007-01-18 21:13:30 jetzt kannst du in dem SELECT einfach folgendes machen:

...date_format(spaltenname, "%Y-%m-%d") AS datum...

Somit hast du in deinem assoziatien Array ein Feld mit dem Namen Datum...also $array['datum']

Ist besser als das PHP gefrickel aber auch dafür gibt es ne Lösung:

$unixtime = strtotime($array['datum']);
date("Y-m-d",$unixtime);

It works!

max

Beginner

  • "max" started this thread

Posts: 34

  • Send private message

7

Friday, February 23rd 2007, 5:09pm

danke cil :dafuer:

mit dem select so ?

PHP Source code

1
2
3
4
5
$sitemapdate mysql_query("SELECT
bild_id, titel, date_format(datum, "%Y-%m-%d") AS datum 
FROM dv_bild
WHERE oeffentlich= 2
ORDER BY datum DESC LIMIT 500 ");


aber wie kommt der rest von dir rein :O

PHP Source code

1
2
3
4
5
6
7
8
9
10
//get data
while ($data mysql_fetch_array($sitemapdate))  
{

    $map_item .= "
   <url>
      <loc>http://www.desktopvision.de/main/show/" $data['bild_id'] . "/" strtolower(dv_replace_specialchars($data['titel'])) . "</loc>
      <lastmod>??????</lastmod>
   </url>";
}

wcf.user.socialbookmarks.titel