从30天前获取日期并转换为iso8601格式

Tho*_*ory 2 php datetime date amazon-mws

我试图从30天前得到日期,并确保它是在亚马逊MWS中使用的iso8601格式这是我尝试过的,它有点工作,它看起来像是正确的格式,但亚马逊仍然说它不正确!

$tester = date("c");
$tester = date('Y-m-d H:i:s', strtotime($tester . ' -30 days'));
$datetime = urlencode($tester);
echo $datetime;
Run Code Online (Sandbox Code Playgroud)

Sal*_*n A 5

您需要指定"c":

$tester = date('c', strtotime('-30 days'));
// if current  date is: 2018-05-02T13:53:24+05:00
// the result would be: 2018-04-02T13:53:24+05:00
Run Code Online (Sandbox Code Playgroud)

话虽如此,我建议转到DateTime课堂:

$date = new DateTime();               // create date for current date
$date->sub(new DateInterval("P30D")); // subtract 30 days
echo $date->format("c");              // 2018-04-02T13:57:54+05:00
Run Code Online (Sandbox Code Playgroud)