Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 11. Januar 2014 07:15
- goldcard
- hat von CMS/ms gehört
- Registriert: 11. Januar 2014
- Beiträge: 2
Tage bis zu Datum ausgeben
Hallo an alle,
ich sitze seit 3 Tagen an einem Problem und sehe wohl mal wieder den Wald vor lauter Bäumen nicht mehr...
Mein Datum der jeweilig betreffenden Berechnung wird in diesem Format ausgegeben:
08 Mar, 2014
Nun möchte ich gerne dass mir die Ausgabe, die Anzahl der Tage bis zu diesem Datum ab jetzt gibt.
Zum Beispiel:
{date_now} //11 Jan, 2014
{date_expire} //08 Mar, 2014
Mein Ergebnis soll nun sein
63
weil es sind noch 63 Tage bis zum 08 Mar, 2014
Ich bedanke mich sehr für eure Hilfe
Grüße Goldi
Beitrag geändert von goldcard (11. Januar 2014 07:18)
Offline
#2 11. Januar 2014 09:55
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Tage bis zu Datum ausgeben
Datumsberechnungen überlasse ich immer Mysql - da gibt es einfach die besseren Möglichkeiten.
SELECT DATEDIFF('2014-3-8',CURDATE()) AS diff
Offline
#3 11. Januar 2014 10:20
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Tage bis zu Datum ausgeben
Willkommen im Forum!
Zunächst ... Smarty ist "nur" eine Template-Engine (wenngleich eine durchaus leistungsfähige). Von daher solltest du nicht zuletzt aus Performance-Gründen Berechnungen soweit als möglich PHP überlassen.
Dann stellt sich die Frage, ob {date_now} und {date_expire} tatsächlich Funktionen sind, oder aber Variablen ({$date_now}, {$date_expire}).
Hatte dein Anliegen vor längerem mal in ähnlicher Weise zu lösen. Konkret ging es darum, die Anzahl von Tagen seit der Veröffentlichung eines News-Artikels auszugeben. Hab ich dann so umgesetzt
vor {floor(($smarty.now-$entry->postdate|strtotime)/86400)} Tagen veröffentlicht
Sollte dir als Denkanstoß weiterhelfen ...
Offline
#4 11. Januar 2014 11:26
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: Tage bis zu Datum ausgeben
Falls dir Cybermans Denkanstoss nicht genügend Schwung mitgab , hier ein kleines CMSMS Plugin:
Download Plugin
(Fand ich letztes Jahr und passte es an CMSMS an)
Sieht dann für NEWS in etwa so aus:
{date_diff date1=$entry->postdate|date_format:"%m/%d/%Y" interval="days" date2="$smarty.now"}
Als Parameter gibt es:
Interval: days(default), weeks, years
assign
Offline
#5 11. Januar 2014 16:09
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Tage bis zu Datum ausgeben
Cool, danke!
Mir ist jedoch, als ob wir dieses Plugin bereits im alten Forum mal am Wickel hatten ...
Offline
#6 11. Januar 2014 16:51
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: Tage bis zu Datum ausgeben
Mir ist jedoch, als ob wir dieses Plugin bereits im alten Forum mal am Wickel hatten ...
Gut möglich.
In meinem Alter verschwimmen Raum und Zeit zunehmends...
Wo wir schon dabei sind, was war denn das alte Forum? Wieso alt?
Offline
#7 11. Januar 2014 17:24
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Tage bis zu Datum ausgeben
Wo wir schon dabei sind, was war denn das alte Forum?
Meinte den deutschen Forenteil im .org Forum .
Wieso alt?
Weil es älter ist als das .de Forum .
Offline
#8 11. Januar 2014 19:07
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Tage bis zu Datum ausgeben
Mal eine einfache Basis für die gestellte Aufgabe - erwartet Datum im Mysql Format.
Kann man auch gut nach Bedarf ändern.
[== PHP ==]
<?php
#Tagedifferenz von now zu d1
# Aufrufbeispiel {daydiff d1='2014-3-8'}
function smarty_function_daydiff($params, &$template)
{
$date1 = new DateTime("now");
$date2 = new DateTime($params['d1']);
$interval = $date1->diff($date2);
echo $interval->format('%a');
}
?>
Offline
#9 11. Januar 2014 20:28
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Tage bis zu Datum ausgeben
Und hier noch schnell die bessere Basis mit einer Mysql Abfrage:
[== php ==]
<?php
#Tagedifferenz von curdate zu d1
# Aufrufbeispiel {daydiff d1='2014-3-8'}
function smarty_function_daydiff($params, &$template)
{
echo cmsms()->GetDb()->GetCol("SELECT DATEDIFF('".$params['d1']."',CURDATE())")[0];
}
?>
Beitrag geändert von czarnowski (11. Januar 2014 20:29)
Offline
#10 15. Januar 2014 23:00
- goldcard
- hat von CMS/ms gehört
- Registriert: 11. Januar 2014
- Beiträge: 2
Re: Tage bis zu Datum ausgeben
Hallo, ich bedanke mich sehr für eure hilfreichen Antworten
Ich habe es jetzt wie folgt direkt im Template gelöst
{math equation="(y - x) / 86400" x=$smarty.now y=$tmp.date_expires_nice|strtotime format="%.0f"}
Viele Grüße Goldi
Offline
Seiten: 1