我有一个 xml 文件,我正在重写其中的一部分,并且我需要将每个 str_replace 的时间戳增加一毫秒(或秒)。我找到了关于递增和在时间戳中添加一秒的教程,但不是在循环期间或每个替换实例中添加时间的教程。
我的替换代码如下所示:
$data = str_replace("</tag1><tag2>", "</tag1><myDate>".date(DATE_ATOM)."</myDate><tag2>", $data);
(澄清一下,文件中有上述模式的多个实例)
替换原样有效,但无法弄清楚如何在每次出现时向日期字符串添加毫秒或秒,因此它们都是唯一的。
谢谢!
更新:
感谢 vascowhite 为我指明了正确的方向,我不得不将其与一些 DOM 操作结合起来,但它确实有效!对于那些想知道的人,这是解决方案:
$domsrc = file_get_contents("output.xml");
$MYdom = new DomDocument();
$MYdom->loadXML($domsrc);
$date = new DateTime();
$oneSecond = new DateInterval('PT1S');
$descriptions = $MYdom->getElementsByTagName('myDate');
foreach($descriptions as $nodeDesciption)
{
$nodeDesciption->nodeValue = $date->format(DATE_ATOM);
$date->add($oneSecond);
}
$MYdom->save("DOMoutput.xml");