Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 10. Februar 2011 10:10

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

[gelöst] Serverzeit abfragen

Ich möchte auf einer Website ein "geändert am" Datum angeben. Das soll vier mal im Jahr automatisch aktualisiert werden da ich das immer vergesse manuell zu ändern. Die Ausgabe stelle ich mir ungefähr so vor:
zuletzt geändert im:
ab Februar dann 01.2011
ab Juni dann 05.2011
ab Oktober dann 09.2011
und im Januar dann 12.20XX-1

Wie könnte ich das anstellen? Den aktuellen Monat und Jahr auszugeben ist ja einfach aber das soll hier ja quartalsmäßig geneiert werden. Wenn wir also April 2013 haben, soll da stehen: zuletzt geändert im Januar 2013. Kriegt man das vielleicht auch mit reinem smarty hin?

Beitrag geändert von nicmare (10. Februar 2011 17:11)

Offline

#2 10. Februar 2011 10:16

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [gelöst] Serverzeit abfragen

Meinst du so etwas wie den mitgelieferten Tag {modified_date}?

Oder soll jede Änderung protokolliert werden?

Offline

#3 10. Februar 2011 10:19

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Meine Empfehlung  - mach das über Mysql.

#4 10. Februar 2011 10:27

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

nichts protokollieren. soll ganz simpel sein

Offline

#5 10. Februar 2011 10:28

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [gelöst] Serverzeit abfragen

Dann reicht dir {modified_date ...} wink

Offline

#6 10. Februar 2011 10:31

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Wenn ich sage Mysql  dann sind die sagenhaften Datumsberechnungsmöglichkeiten  gemeint die damit easy möglich sind.

Dazu wird lediglich eine db Verbindung benötigt, 0 Tabelle, 0 Speicherung.

Und das wäre erforderlich nach deiner Eingangsvorstelltung, denn da reicht eine simple Ausgabeformatierung nicht.

#7 10. Februar 2011 10:35

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

ich kann kein mysql

Offline

#8 10. Februar 2011 10:38

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Welche SQL wäre die Frage und dann ist es doch mal eine Gelegenheit das z.B. über PHPMyAdmin auszuprobieren:

http://dev.mysql.com/doc/refman/5.1/de/ … tions.html

#9 10. Februar 2011 11:32

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [gelöst] Serverzeit abfragen

Noch einfacher isses, bereits existierende Smarty-Variablen zu verwenden  cool

{$content_obj->mModifiedDate|date_format:"%m.%Y"}

Offline

#10 10. Februar 2011 12:03

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Wenn jemand eine solche Anforderung hat:

ab Februar dann 01.2011
ab Juni dann 05.2011
ab Oktober dann 09.2011
und im Januar dann 12.20XX-1

wüsste ich nicht wie man das ohne rechnen hin bekommen sollte - was habe ich übersehen ?

#11 10. Februar 2011 12:07

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [gelöst] Serverzeit abfragen

nicmare schrieb:

nichts protokollieren. soll ganz simpel sein

cool

Offline

#12 10. Februar 2011 12:20

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Oh Mann

Dazu wird lediglich eine db Verbindung benötigt, 0 Tabelle, 0 Speicherung.

und wie ist es mit der Rechenarbeit ?

#13 10. Februar 2011 12:26

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [gelöst] Serverzeit abfragen

Ähmm <auf dem Schlauch steh />, was willst du da noch rechnen, wenn nur eine Variable (das Datum der letzten Seitenänderung) ausgegeben werden soll?

Offline

#14 10. Februar 2011 12:35

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Anforderung:

ab Februar dann 01.2011
ab Juni dann 05.2011
ab Oktober dann 09.2011
und im Januar dann 12.20XX-1

Also

Feb - Mai - 1.2011
Juni - September - 5.2011
Oktober - Dezember - 9.2011
Jan (z.B.2011)  -12.2010

#15 10. Februar 2011 13:07

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

sorry jungs. da habe ich mich wohl missverständlich ausgedrückt. dabei habe ich mir eigentlich mühe gegeben. ich probiers mal anders:
es soll 4 mal im Jahr das Datum automatisch aktualisiert werden. EGAL ob tatsächlich jede einzelne Seite bearbeitet wurde oder nicht!
Das Schema des Datums habe ich oben beschrieben. Modfied Date bringt mir also rein garnichts. Weil der gesuchte Algorithmus nicht wirklich was mit der tatsächlichen Bearbeitung zu tun haben soll.

Offline

#16 10. Februar 2011 13:58

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Nun gut habe die Aufgabe wohl verstanden - meine Empfehlung - lass es von  Mysql ausrechnen, geht einfach schnell und billig.

#17 10. Februar 2011 14:04

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

ich habe dich auch verstanden aber ich verstehe nichts von mysql. hast du das verstanden? big_smile

Offline

#18 10. Februar 2011 14:08

piratos
Gast

Re: [gelöst] Serverzeit abfragen

nicmare schrieb:

ich habe dich auch verstanden aber ich verstehe nichts von mysql. hast du das verstanden? big_smile

Ja  das hast du ja geschrieben und ich habe empfohlen das mal unter PMA anzutesten - siehe Beispiellink zu Mysql .

Es geht hier also nur um die Abfrage - oder hast du eine gebrauchsfertige Lösung erwartet ?

#19 10. Februar 2011 14:09

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

ich hatte auf eine smarty lösung gehofft. damit kann ich einigermaßen umgehen

Offline

#20 10. Februar 2011 14:51

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Also hier mal ein Schnellansatz

<?php

function smarty_cms_function_modified_date($params, &$smarty)
{
    global $gCms;
    $content_obj = $gCms->variables['content_obj'];
        $config =& $gCms->config;
    $db =& $gCms->GetDb();
        $r=$db->GetRow("SELECT DATE_FORMAT(  `modified_date` - INTERVAL 1 MONTH ,  '%m' ) AS Monat, DATE_FORMAT(  `modified_date` - INTERVAL 1 MONTH ,  '%Y' ) AS Jahr FROM  `".cms_db_prefix()."content` WHERE content_id = ".$content_obj->Id());
        
}


?>

Es wird das Datum - 1 Monat verarbeitet.

Die Daten liegen unter $r['Monat'] und $r['Jahr'] vor - das kannst du nun per PHP filtern und ausgeben.

#21 10. Februar 2011 15:36

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Hier noch die Komplettlösung ohne Tabellenabfrage da das mDatum intern bereits vorliegt:

<?php

function smarty_cms_function_modified_date($params, &$smarty) {
    global $gCms;
    $content_obj = $gCms->variables['content_obj'];
    $config = & $gCms->config;
    $db = & $gCms->GetDb();
    $r = $db->GetRow("SELECT DATE_FORMAT('" . $content_obj->mModifiedDate . "'- INTERVAL 1 MONTH ,  '%m' ) AS Monat, DATE_FORMAT( '" . $content_obj->mModifiedDate . "' - INTERVAL 1 MONTH ,  '%Y' ) AS Jahr ");
    if (in_array($r['Monat'], array('01', '02', '03', '04')))
        echo '1.' . $r['Jahr'];
    elseif (in_array($r['Monat'], array('05', '06', '07', '08')))
        echo '5.' . $r['Jahr'];
    elseif (in_array($r['Monat'], array('09', '10', '11')))
        echo '9.' . $r['Jahr'];
    elseif ($r['Monat'] == '12')
        echo '12.' . $r['Jahr'];
}
?>

#22 10. Februar 2011 15:39

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

danke für deinen denkanstoß aber kann es sein dass ich immernoch nicht richtig verstanden wurde? oder ich bin mittlerweile selber komplett durcheinander big_smile  ich möchte nicht das modified date der jeweiligen seite ausgeben bzw damit arbeiten.
es gibt vier feste zeitangaben (fett), die sich immer wiederholen:
ab Februar dann Januar 20XX (gilt für Februar, März, April, Mai)
ab Juni dann Mai 20XX (gilt für Juni, Juli, August, September)
ab Oktober dann September 20XX (gilt für Oktober, November, Dezember)
und im Januar dann Dezember 20XX-1 (gilt für Januar usw…)

Ich weiß, es ist mittelmäßig dämlich aber der Kunde hat ja immer "spezielle" wünsche…
Es soll einfach so aussehen, als würden die Seiten quartalsweise geupdatet werden.

Offline

#23 10. Februar 2011 15:47

piratos
Gast

Re: [gelöst] Serverzeit abfragen

Aha  - dann ist die Fragestellung komplett in die Grütze gegangen.

Also stink normal Smartymüll:

Datum (Monat) zuweisen und dann mit Smarty auswerten.

#24 10. Februar 2011 16:05

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

also irgendwie so:

zuletzt geändert:
{assign var=themonth value=$smarty.now|date_format:'%B'}
{if  $themonth == "Februar" OR $themonth == "März" OR  $themonth == "April" }
Januar
{/if}
{$smarty.now|date_format:'%Y'}

oder? wie mache ich es wenn wir januar haben? dann soll ja das alte Jahr erscheinen.

Beitrag geändert von nicmare (10. Februar 2011 16:09)

Offline

#25 10. Februar 2011 16:14

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [gelöst] Serverzeit abfragen

ich habs jetzt so gemacht, zu allem überfluss auch noch in französisch:

{assign var=themonth value=$smarty.now|date_format:'%B'}
{if  $themonth == "février" OR $themonth == "mars" OR  $themonth == "avril" OR  $themonth == "mai"}
janvier
{/if}
{if  $themonth == "juin" OR  $themonth == "juillet" OR  $themonth == "août" OR  $themonth == "septembre"}
mai
{/if}
{if  $themonth == "octobre" OR  $themonth == "novembre" OR  $themonth == "décembre"}
septembre
{/if}
{if  $themonth == "janvier"}
décembre {$smarty.now|date_format:'%Y'-1}
{/if}
{$smarty.now|date_format:'%Y'}

mal gucken wie lange es hält

Offline