在Windows搜索中更改System.DateModified格式

在Windows搜索中更改System.DateModified格式,windows,indexing,adodb,windows-search,Windows,Indexing,Adodb,Windows Search,我正在使用Windows索引搜索和PHP来搜索数千个文件 我通过使用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';");

我正在使用Windows索引搜索和PHP来搜索数千个文件

我通过使用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
字段,我意识到它的格式取决于系统配置。可以通过Windows中的控制面板进行设置

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

我注意到有属性
formatAs
,但我不确定如何更改它,文档也不是很完整


谢谢。

您可以使用将VT_日期对象转换为UNIX时间戳,然后使用对其进行格式化,无论控制面板中的日期格式如何,这都应该有效

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

我得到了错误的修改日期。返回的时间戳不正确。我发行了一期新的: