将数组转换为变量并对其进行操作以在 php 中创建 XML 文件

Convert array in a variable and manipulate it to create XML file in php

    $bday = $f['date_of_birth']; //it outputs-> 20102016

所以我尝试使用 preg_split() 甚至 explode() 但没有帮助

    $str = $bday;
    $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
    print_r($chars[0]);

我想使用 $bday 作为 DOMDocument 中的节点值来创建 XML 文件

    $doc = new DOMDocument();
    $doc->formatOutput = true;

    $root = $doc->createElement('StudentDetails');
    $root = $doc->appendChild($root);

    $ele1 = $doc->createElement('DateOfBirth');
    $ele1->nodeValue=$bday;
    $root->appendChild($ele1);

我希望我的 XML 输出像

    <?xml version="1.0"?>
    <StudentDetails>
         <DateOfBirth>20/10/2016</DateOfBirth>
    </StudentDetails> 

如果日期始终为 DDMMYYYY,您可以使用 preg_replace.

插入斜线
$bday = preg_replace('/(\d\d)(\d\d)(\d\d\d\d)/', "//", $bday);

只需将 $f['date_of_birth'] 更改为 20 10 2016。然后只需使用:

$chars = explode(" ",$bday);

然后你有一个包含以下值的数组:{20,10,2016}

the DateTime class 的魔法来拯救!

$dtz = new DateTimeZone ("UTC");
$birthdate = new DateTime ($f['dateofbirth'], $dtz);
echo $birthdate->format ("d/m/Y");

如果您想按时进行一些计算,那么您可能需要为您所在的位置设置正确的时区。如果没有,那么 UTC 就足够了。

您可以使用 DateTime::createFromFormat 函数将日期转换为您的格式。在函数中,您必须提供当前格式。最后你必须提供你期望的格式 ($date->format('d/m/Y')).

$bday = '20102016';
$date = DateTime::createFromFormat('dmY',$bday);
echo $date->format('d/m/Y');