Hallo,
ich habe ein Problem bei der Auswertung oder dem Auslesen von aggregierten Archivwerten. Der letzte Zeitraum, der eigentlich bis 31.12.2020 23:59:59 gehen sollte, geht nun immer bis zum aktuellen Zeitstempel.
Hier mal ein Code-Beispiel:
$Archiv_ID = 45343;
//auszuwertende Variablen
$W_Bezug_Gesamt = 41089;
$W_Lieferung_Gesamt = 50743;
$StartTime = mktime(0, 0, 0, 1, 1, 2018);
$EndTime = mktime(0, 0, 0, 1, 1, 2021)-1;
$werte_Bez = AC_GetAggregatedValues($Archiv_ID, $W_Bezug_Gesamt, 4, $StartTime, $EndTime, 0);
$werte_Lie = AC_GetAggregatedValues($Archiv_ID, $W_Lieferung_Gesamt, 4, $StartTime, $EndTime, 0);
$StartDate = array();
$EndDate = array();
foreach($werte_Bez as $wert)
{
$StartDate[] = date("d.m.Y H:i:s", $wert['TimeStamp']);
$EndDate[] = date("d.m.Y H:i:s", ($wert['TimeStamp'] + $wert['Duration']));
}
$LengthTable = count($StartDate);
$Table[0] = array_merge(array('Startdatum + Uhrzeit'), $StartDate);
$Table[1] = array_merge(array('Enddatum + Uhrzeit'), $EndDate);
$Table[2] = array_merge(array('Bezug Gesamt'), array_column($werte_Bez, 'Avg'));
$Table[3] = array_merge(array('Lieferung Gesamt'), array_column($werte_Lie, 'Avg'));
$Spalten = count($Table);
$Text = PHP_EOL;
for ($line=0; $line<$LengthTable; $line++)
{
for ($col=0; $col<$Spalten; $col++)
{
if ($col < ($Spalten-1))
{
$Val = $Table[$col][$line];
$Text = $Text.strval($Val)." ";
}
else
{
$Val = $Table[$col][$line];
$Text = $Text.strval($Val); // letzte Spalte
}
}
$Text = $Text.PHP_EOL;
}
var_dump($Text);
Das Ergebnis ist folgendes:
Startdatum + Uhrzeit Enddatum + Uhrzeit Bezug Gesamt Lieferung Gesamt
01.01.2020 00:00:00 07.01.2021 19:59:36 3123.564 3915.525
01.01.2019 00:00:00 01.01.2020 00:00:00 2984.182 3831.093
kann mir jemand sagen, was ich falsch mache?
viele Grüße
cervicor