raven16
Lieutenant
- Registriert
- Nov. 2008
- Beiträge
- 580
Hallo,
ich bekomme folgende Ausgabe und weiß leider nicht genau, wodurch der Notice verursacht wird:
Mein Quelltext:
Die Funktion gibt zumindest genau das geforderte Ergebnis im Format yyyy-mm-dd aus, was schon mal schön ist.
Ich hoffe ihr habt einen wertvollen Tipp für mich![Lächeln :) :)](/forum/styles/smilies/smile.gif)
Generelle Verbesserungen zum Quellcode nehme ich auch gerne entgegen![LOL :lol: :lol:](/forum/styles/smilies/lol.gif)
Gruß
ich bekomme folgende Ausgabe und weiß leider nicht genau, wodurch der Notice verursacht wird:
Array ( [0] => 2013-09-01 [1] => 2015-11-01 )
Notice: Array to string conversion in D:\...\index.php on line 78
Array
Mein Quelltext:
PHP:
<?php
/**
* Funktion, die einen Monatszeitraum von
* einem enddate berechnet, z.B. wird aus
* 31. Oktober 2015 der Zeitraum im Format
* 2015-10-01 bis 2015-09-01.
*
* ## Param
* $enddate = timestamp
* $months = Integer
* ## Return
* Array[0] = Startdatum
* Array[1] = Enddatum
*/
function sp_timescale($timestamp, $months){
if(!is_int($timestamp) || !is_int($months))
return false;
$tmp_date = date("Y-m-d", $timestamp);
if(preg_match("#^(\d{4})-(\d{2})-(\d{2})$#", $tmp_date) != 1)
return false;
// Enddatum generieren
$tmp_date = explode("-", $tmp_date);
$yyyy = $tmp_date[0];
$mm = $tmp_date[1];
$dd = "01";
$bis = $yyyy.'-'.$mm.'-'.$dd;
// Startdatum generieren
if(floor($months / 12) > 0){
$yyyy = $yyyy - floor($months / 12); // yyyy div 12 (Teiler ohne Rest von Jahr abziehen)
$mm_mod = $months % 12; // yyyy mod 12 (Rest muss noch abgezogen werden)
}
if(isset($mm_mod))
$mm_von = $mm - $mm_mod;
else
$mm_von = $mm - $months;
// Prüfen, ob Jahresschwelle unterschritten wird
if($mm_von <= 0){
$yyyy--;
$mm = 12 - abs($mm_von);
}
else $mm = $mm_von;
if($yyyy < 10){
settype($yyyy, 'String');
$yyyy = '0'.$yyyy;
}
if($mm < 10){
settype($mm, 'String');
$mm = '0'.$mm;
}
$von = $yyyy.'-'.$mm.'-'.$dd;
$arr_date = array($von, $bis);
print_r($arr_date);
return $arr_date;
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>test</title>
</head>
<body>
<?php
$time = time();
echo sp_timescale($time,26);
?>
</body>
</html>
Die Funktion gibt zumindest genau das geforderte Ergebnis im Format yyyy-mm-dd aus, was schon mal schön ist.
Ich hoffe ihr habt einen wertvollen Tipp für mich
![Lächeln :) :)](/forum/styles/smilies/smile.gif)
Generelle Verbesserungen zum Quellcode nehme ich auch gerne entgegen
![LOL :lol: :lol:](/forum/styles/smilies/lol.gif)
Gruß