29. marts 2011 - 15:01
Der er
4 kommentarer
Dato problem -
Hejsa, Jeg mangler noget hjælp til at et dato problem, som jeg snart er ved at opgive. Det er en log hvor der skal søges i, hvis mine datoer (via POST) enten er lig med eller er inden for disse StartTm og EndTm skal jeg bruge de ArrayKeys til at søge videre i SOAP'en. Forneden kan i se de dato perioder jeg kan søge inden i. Array ( [0] => stdClass Object ( [Id] => 11.03 [StartTm] => 2011-03-01T00:00:00 [EndTm] => 2011-04-01T00:00:00 ) [1] => stdClass Object ( [Id] => 11.02 [StartTm] => 2011-02-01T00:00:00 [EndTm] => 2011-03-01T00:00:00 ) [2] => stdClass Object ( [Id] => 11.01 [StartTm] => 2011-01-01T00:00:00 [EndTm] => 2011-02-01T00:00:00 ) [3] => stdClass Object ( [Id] => 10.12 [StartTm] => 2010-12-01T00:00:00 [EndTm] => 2011-01-01T00:00:00 ) [4] => stdClass Object ( [Id] => 10.11 [StartTm] => 2010-11-01T00:00:00 [EndTm] => 2010-12-01T00:00:00 ) [5] => stdClass Object ( [Id] => 10.10 [siSite] => 576871 [StartTm] => 2010-10-01T00:00:00 [EndTm] => 2010-11-01T00:00:00 ) [6] => stdClass Object ( [Id] => 10.09 [StartTm] => 2010-09-01T00:00:00 [EndTm] => 2010-10-01T00:00:00 ) [7] => stdClass Object ( [Id] => 10.08 [StartTm] => 2010-08-01T00:00:00 [EndTm] => 2010-09-01T00:00:00 ) [8] => stdClass Object ( [Id] => 10.07 [StartTm] => 2010-07-01T00:00:00 [EndTm] => 2010-08-01T00:00:00 ) [9] => stdClass Object ( [Id] => 10.06 [StartTm] => 2010-06-01T00:00:00 [EndTm] => 2010-07-01T00:00:00 ) ) Nogen gode ideer til hvordan jeg med min Start og slut dato kan sorter i dem.
Annonceindlæg fra Computerworld it-jobbank
29. marts 2011 - 15:42
#1
Kan du ikke bare loope gennem dem og konvertere tiderne til unix-format? $time = $_POST['time']; // i unix format $keys = array(); foreach( $array as $key => $value ) { $StartTm = mktime( 0, 0, 0, substr( $value->StartTm, 5, 2 ), substr( $value->StartTm, 8, 2 ), substr( $value->StartTm, 0, 4 ) ); $EndTm = mktime( 0, 0, 0, substr( $value->EndTm, 5, 2 ), substr( $value->value->EndTm, 8, 2 ), substr( $value->value->EndTm, 0, 4 ) ); if( $time > $StartTm && $time < $EndTm ) $keys[] = $key; } Ej testet, og det er bare et forslag ;-)
29. marts 2011 - 17:00
#2
Hej, Her er min vedhæftet kode: $StartTime = strtotime($_GET[fromdate]); echo "Start: ".$_GET[fromdate]." - "; $StopTime = strtotime($_GET[todate]); echo "Stop: ".$_GET[todate]."<br />"; for ($i = 0; $i < count($output->AlarmLogPeriodData); $i++) //hvis denne for loop skal bruges andre steder skal der laves en klasse som kan sørge for at lave den samlede log. { echo $output->AlarmLogPeriodData[$i]->StartTm." - "; $StartTm = mktime( 0, 0, 0, substr( $output->AlarmLogPeriodData[$i]->StartTm, 5, 2 ), substr( $output->AlarmLogPeriodData[$i]->StartTm, 8, 2 ), substr( $output->AlarmLogPeriodData[$i]->StartTm, 0, 4 ) ); echo $StartTm ." - "; echo $output->AlarmLogPeriodData[$i]->EndTm." - "; $EndTm = mktime( 0, 0, 0, substr( $output->AlarmLogPeriodData[$i]->EndTm, 5, 2 ), substr( $output->AlarmLogPeriodData[$i]->EndTm, 8, 2 ), substr( $output->AlarmLogPeriodData[$i]->EndTm, 0, 4 ) ); echo $EndTm ." - "; if( $StartTime >= $StartTm && $StartTime <= $EndTm ) echo $i; echo "<br />"; } Jeg har her outputtet og der hvor der står 2 og 3 ud for er dem som den har valgt. Den vælger åbenlyst ikke en slut dato som jeg også har: Start: 2011-01-01 - Stop: 2011-03-28 2011-03-01T00:00:00(Normal start dato)- 1298934000(Unix start dato)- 2011-04-01T00:00:00(Normal slut dato)- 1301608800(Unix slut dato) - 2011-02-01T00:00:00 - 1296514800 - 2011-03-01T00:00:00 - 1298934000 - 2011-01-01T00:00:00 - 1293836400 - 2011-02-01T00:00:00 - 1296514800 - 2 2010-12-01T00:00:00 - 1291158000 - 2011-01-01T00:00:00 - 1293836400 - 3 2010-11-01T00:00:00 - 1288566000 - 2010-12-01T00:00:00 - 1291158000 - 2010-10-01T00:00:00 - 1285884000 - 2010-11-01T00:00:00 - 1288566000 - 2010-09-01T00:00:00 - 1283292000 - 2010-10-01T00:00:00 - 1285884000 - 2010-08-01T00:00:00 - 1280613600 - 2010-09-01T00:00:00 - 1283292000 - 2010-07-01T00:00:00 - 1277935200 - 2010-08-01T00:00:00 - 1280613600 - 2010-06-01T00:00:00 - 1275343200 - 2010-07-01T00:00:00 - 1277935200 - Har du en løsning til at min dato (start og slut) vælger de rigtige? 2011-03-01 og 2011-02-01 burde også vælges.
12. april 2011 - 22:43
#3
Hmmm, kan du ikke bare lave dit format om til "time" har ikke testet dit eks, klokken er mange og er på vej i seng, men vil umilbart tror du kan bruge strtotime( $myVar ); hvor den reture timestamp?
01. november 2011 - 10:16
#4
Er i søde at komme med et svar så deler jer lige pointene ud :) Jeg har fået det rettet :)
Vi tilbyder markedets bedste kurser inden for webudvikling