Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Drei Monate zurück rechnen mit PHP, Ging bis zum Jahreswechsel gut...
Sandro Feuillet
zehnplus GmbH
Geschrieben am: Mi 4.01.2006, 11:14
Report PostQuote Post

AyomRank 7
Group Icon

Gruppe: Moderatoren
Beiträge: 1462
Mitglied seit: 4.05.2004


Hi, wer kann mir sagen, wie ich vom aktuellen Monat drei zurückrechnen kann?

Mein (fehlerhafter) Code:
CODE

$dd = date("d");
$mm = date("m");
$mm = ($mm - 03);
$YY = date("Y");
$maxbefore = "0".$mm."/".$dd."/".$YY;


Gruss Sandro


--------------------
Gruss Sandro

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

zehnplus - Wir optimieren Ihre Seite SEO, Online-Kundendienst, Usability
Politik Forum Schweiz Das führende Schweizer Politikforum
Top
PMEmail PosterUsers WebsiteYahooMSN
Top
 
 
Roger Bobst
calac gmbh
#2 Geschrieben am: Mi 4.01.2006, 11:28 (+00:14)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 426
Mitglied seit: 15.02.2004


Hallo Sandro

Geht folgendes:

CODE
$last = mktime(0, 0, 0, date("m")-3, date("d"),  date("Y"));


Sonst gibts weitere Infos unter http://php.benscom.com/manual/en/function.date.php

Gruss
Roger
Top
PMEmail PosterUsers Website
Top
 
Jörg Kruse
#3 Geschrieben am: Mi 4.01.2006, 11:40 (+00:11)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 418
Mitglied seit: 19.12.2004


Ich würde es in etwa so probieren:

CODE

$dd = date("d");
$mm = date("m");
$YY = date("Y");

if($mm > 03) {
$mm = ($mm - 03);
} else {
$mm = ($mm + 09);
$YY = ($YY - 01);
}

$maxbefore = "0".$mm."/".$dd."/".$YY;


--------------------
Top
PMEmail PosterUsers Website
Top
 
Patrick
#4 Geschrieben am: Mi 4.01.2006, 11:40 (+00:00)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 228
Mitglied seit: 11.01.2004


Jap, mit mktime gehts:

CODE
$last = mktime(0, 0, 0, date("m")-3, date("d"),  date("Y"));
$last = date("d.m.Y",$last);
print $last;


Hab einfach noch die zweite Zeile drangehängt, weil mktime die Zeit in Sekunden angibt und diese ja ganz einfach mit date() in ein "ansehnliches" Datum verwandeln kannst...
Top
PMEmail Poster
Top
 
sd12
#5 Geschrieben am: Mi 4.01.2006, 17:39 (+05:59)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 3581
Mitglied seit: 3.03.2004


@sandro....

ging mir auch so in einem script....

Falls kein Vorschlag funkt, hab ich dir noch meinen. Hab auch mktime verwendet.


--------------------
************************
Treiber f[r das Kezboard ist [berfl[ssig.
Top
PMEmail PosterICQMSN
Top
 
pangu
#6 Geschrieben am: Mi 4.01.2006, 19:20 (+01:40)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 836
Mitglied seit: 29.07.2005


sorry, das ich mich in den thread jetzt einmische, aber ich habe eine ähnliche frage:
nehmen wir an ich habe 2 datum im timestampformat. wie kann ich jetzt feststellen, wieviel tage/stunden/Minuten/Sekunden unterschied zwischen ihnen liegen??


--------------------
Jonglieren lernen nette Community rund ums Jonglieren °°°
Top
PMEmail PosterUsers WebsiteICQ
Top
 
manuel
#7 Geschrieben am: Mi 4.01.2006, 21:44 (+02:23)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 261
Mitglied seit: 14.01.2004


@ pangu
CODE

<?php
$timeDatum1= mktime(0, 0, 0, 1, 1, 2000);
$timeDatum2= time ();                      // Jetzt

$diff = $timeDatum2 - $timeDatum1;
$vergangene_tage = round($diff / 86400);
$vergangene_mins = round(($diff - $vergangene_tage) / 60));

?>


und so weiter wink.gif

eine "etwas" bessere funktion
http://php.benscom.com/manual/de/function.date.php#55986
Top
PM
Top
 
pangu
#8 Geschrieben am: Mi 4.01.2006, 22:09 (+00:25)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 836
Mitglied seit: 29.07.2005


ok, danke smile.gif

edit:
der code aus dem link funktioniert bei mir aber irgendwie nicht ganz:
CODE

<?php
// for bitwise operations... =]
define(D_YEAR, 1);
define(D_MONTH, 2);
define(D_WEEK, 4);
define(D_DAY, 8);
define(D_HOUR, 16);
define(D_MINUTE, 32);
define(D_SECOND, 64);
function difftimetostring($difftime, $Opt = 0)
{
  if ($Opt == 0) $Opt = D_YEAR | D_MONTH | D_DAY | D_HOUR | D_MINUTE;
  $diffstring = null;
  $BissextFix = floor ($difftime / ((3600 * 24) * 366));
  for($i=(date('Y') - $BissextFix); $i < date('Y'); $i++)  
      {
          $x = 0 + ($i / 4);
          if (($x - floor($x)) == 0)
            $bissextyears ++;
      }
 
  if ($Opt & D_YEAR) {
      $years = floor($difftime / (3600 * 24 * (365 + $bissextdays)));
      $difftime = $difftime % (3600 * 24 * (365 + $bissextdays));
  }
 
  if ($Opt & D_MONTH) {
      $months = floor($difftime / (3600 * 24 * ((365  + $bissextdays)/12)));
      $difftime = $difftime % (3600 * 24 * ((365  + $bissextdays)/12));
  }
 
  if ($Opt & D_WEEK) {
      $weeks = floor($difftime / (3600 * 24 * 7));
      $difftime = $difftime % (3600 * 24 * 7);
  }
 
  if ($Opt & D_DAY) {
      $days = floor($difftime / (3600 * 24));
      $difftime = $difftime % (3600 * 24);
  }
 
  if ($Opt & D_HOUR) {
      $hours = floor($difftime / 3600);
      $difftime = $difftime % 3600;
  }
 
  if ($Opt & D_MINUTE) {
      $minutes = floor($difftime / 60);
      $difftime = $difftime % 60;
  }
 
  if ($Opt & D_SECOND) {
      $seconds = $difftime;
  }
       
  $diff = array();
  // Ano
  if($years > 0 && $years > 1)
      array_push($diff, $years . ' anos');
  else if ($years == 1)
      array_push($diff, ' 1 ano');
     
  // Meses
  if($months > 0 && $months > 1)
      array_push($diff, $months . ' meses');
  else if ($months == 1)
      array_push($diff, $months . ' m�s');

  // Semanas
  if($weeks > 0 && $weeks > 1)
      array_push($diff, $weeks . ' semanas');
  else if ($weeks == 1)
      array_push($diff, '1 semana');
         
  // Dias
  if($days > 0 && $days > 1)
      array_push($diff, $days . ' dias');
  else if ($days == 1)
      array_push($diff, '1 dias');

  // Horas
  if($hours > 0 && $hours > 1)
      array_push($diff, $hours . ' horas');
  else if ($hours == 1)
      array_push($diff, '1 hora');
     
  // Minutos
  if($minutes > 0 && $minutes > 1)
      array_push($diff, $minutes . ' minutos');
  else if ($minutes == 1)
      array_push($diff, '1 minutos');
 
  // Segundos
  if($seconds > 0 && $seconds > 1)
      array_push($diff, $seconds . ' segundos');
  else if ($seconds == 1)
      array_push($diff, '1 segundo');
     
  return implode(', ', $diff) . ' atr�s';
}



$DiffDate =  1136740200 - time(); //beispielzeit
$DiffDateString = difftimetostring($DiffDate, 0);
echo $DiffDateString;

..es werden keine sekunden (atros) ausgegeben.. ?!


--------------------
Jonglieren lernen nette Community rund ums Jonglieren °°°
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Sandro Feuillet
zehnplus GmbH
#9 Geschrieben am: Do 5.01.2006, 09:01 (+10:52)
Report PostQuote Post

AyomRank 7
Group Icon

Gruppe: Moderatoren
Beiträge: 1462
Mitglied seit: 4.05.2004


QUOTE (Patrick @ Mi 4.1.2006, 11:40)
Jap, mit mktime gehts:

CODE
$last = mktime(0, 0, 0, date("m")-3, date("d"),  date("Y"));
$last = date("d.m.Y",$last);
print $last;


Hab einfach noch die zweite Zeile drangehängt, weil mktime die Zeit in Sekunden angibt und diese ja ganz einfach mit date() in ein "ansehnliches" Datum verwandeln kannst...

Funktioniert, herzlichen Dank.


--------------------
Gruss Sandro

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

zehnplus - Wir optimieren Ihre Seite SEO, Online-Kundendienst, Usability
Politik Forum Schweiz Das führende Schweizer Politikforum
Top
PMEmail PosterUsers WebsiteYahooMSN
Top
 
Ansgar Berhorn
TOPdesk Deutschland
#10 Geschrieben am: Do 5.01.2006, 09:28 (+00:27)
Report PostQuote Post

AyomRank 6
Group Icon

Gruppe: Experten Entwicklung (Mod)
Beiträge: 857
Mitglied seit: 8.10.2004


QUOTE

Warum ist sie besser?
Da wird meines Erachtens nur nochmal das Rad neu erfunden.
Das Ergebnis sollte das gleiche sein wie mit einem mktime/date-Konstrukt.
Löst das irgendwas, was man mit mktime/date nicth herausfinden könnte?

Aber das Bespiel animiert in jedem Fall, sich ein wenig mit der spanischen Sprache auseinanderzusetzen. wink.gif


--------------------
Top
PMUsers Website
Top
 
manuel
#11 Geschrieben am: Do 5.01.2006, 10:36 (+01:07)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 261
Mitglied seit: 14.01.2004


QUOTE (Ansgar Berhorn @ Do 5.1.2006, 9:28)
QUOTE

Warum ist sie besser?
Da wird meines Erachtens nur nochmal das Rad neu erfunden.
Das Ergebnis sollte das gleiche sein wie mit einem mktime/date-Konstrukt.
Löst das irgendwas, was man mit mktime/date nicth herausfinden könnte?

diese Funktionw ar ja absolut OT wink.gif... diese Funktion ist nur gut dafür um die Differenz zwischen zwei Timestamps auszurechnen. Was aber überhaupt nichts mit dem eigentlichen Thema (3 Monate zurück) zu tun hat. Nur wiel panug gefragt hat, hab ich die Funktion kurz rausgesucht. Weil sie besser ist als mein Versuch im gleichen Post die Differenz auszurechnen.
Top
PM
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/9923

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Formular rechnen lassen easymoments 320 6 So 21.09.2008, 11:18
Pendlerpauschale zurück fordern littlefish 117 1 Sa 13.09.2008, 06:51
Affili.Net & eBay - 2 Monate nach Änderung stasch 349 4 Fr 6.06.2008, 16:34
Zak McKracken ist zurück! webdoktor 556 19 Do 29.05.2008, 19:22
[S] 40 Euro auf PayPal, zahle 45 Euro zurück Thiemm 389 4 So 22.07.2007, 19:38
:unsure: array gibt fehler zurück ! ThePosterity 384 4 Di 22.05.2007, 13:40
AOL Liste mit Suchanfragen der letzten 3 Monate mongule 426 2 Di 8.08.2006, 18:08
Bill Gates zieht sich aus dem Tagesgeschäft zurück Lucas Wyrsch 1223 6 Mi 28.06.2006, 21:22




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]