2014-02-17 1 views
1

PHP로 Windows 인덱싱 검색을 사용하여 수천 개의 파일을 검색합니다. 나는 각 요소의 DateModified 필드를 검색하고Windows 검색에서 System.DateModified 형식으로 변경

$conn = new COM("ADODB.Connection") or die("Cannot start ADO"); 
$recordset = new COM("ADODB.Recordset"); 

$conn - > Open("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"); 


$recordset - > Open("SELECT System.ItemName, System.DateModified FROM SYSTEMINDEX WHERE DIRECTORY='file:C:/xxxx/' AND CONTAINS('xxxx')", $conn); 

$recordset - > MoveFirst(); 

while (!$recordset - > EOF) { 
    echo $recordset - > Fields - > Item("System.ItemName") - > Value."\n"; 
    $recordset - > MoveNext(); 
} 

하고 시스템 구성에 따라 다릅니다의 나는 형식을 실현했습니다

나는 그것이 PHP COM 클래스를 사용하여 작업을 얻었다. Windows에서는 제어판을 통해 설정할 수 있습니다.

스크립트를 실행하려는 모든 시스템에서 제어판을 사용하여 변경하지 않으려는 경우 원하는 형식으로 가져 오는 방법이 있는지 궁금합니다.

나는 the object 속성이 formatAs 인 것을 알았지 만 그것을 어떻게 바꾸는 지 잘 모르며 문서가 완전하지 않습니다.

감사합니다.

답변

1

variant_date_to_timestamp을 사용하여 VT_DATE 개체를 UNIX 타임 스탬프로 변환 한 다음 date으로 서식을 지정할 수 있습니다. 이는 제어판의 날짜 형식과 상관없이 작동해야합니다.

$format = "Y-m-d"; 
$object = $recordset->Fields->Item("System.DateModified")->Value; 
$timestamp = variant_date_to_timestamp($object); 
echo date($format, $timestamp) . "\n"; 
+0

굉장한 사람! : D 당신은 사랑스럽고, 나는 너에게 키스하겠다 !! : D – Alvaro

+0

잘못된 수정 날짜가 나타납니다. 반환 된 타임 스탬프가 잘못되었습니다. 새로운 문제를 열었습니다. http://stackoverflow.com/questions/23059452/getting-wrong-value-for-variant-date-to-timestamp – Alvaro

관련 문제