在Windowssearch上更改System.DateModified格式

我使用Windows索引search与PHP一起search数以千计的文件。

我通过使用PHP COM类得到它的工作:

$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(); } 

我检索每个元素的DateModified字段,我已经意识到它的格式取决于系统configuration。 可以通过Windows中的控制面板进行设置。

我想知道是否有任何方法来获得所需的格式,以避免在每个我想要运行脚本的系统中使用控制面板来更改它。

我注意到对象具有属性formatAs但我不知道如何改变它,文档不是很完整。

谢谢。

您可以使用variant_date_to_timestamp将VT_DATE对象转换为UNIX时间戳,然后使用日期进行格式化,无论控制面板中的日期格式如何,都可以工作。

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