php - 获取 30 天前的日期并转换为 iso8601 格式

标签 php date datetime amazon-mws

我正在尝试获取 30 天前的日期,并确保它采用 iso8601 格式,以便在 Amazon MWS 中使用,这是我尝试过的方法,它在一定程度上有效,而且看起来格式正确但亚马逊仍然说它不正确!

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

最佳答案

您需要指定“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

话虽如此,我建议切换到 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

关于php - 获取 30 天前的日期并转换为 iso8601 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130458/

相关文章:

php - WampServer Apache 模块无法启动

php - 在 WordPress 管理页面中打开 <body> 标签后插入 HTML

python - 如何在python中对日期进行排序?

java - 是否可以在 xslt 中格式化一个大的小数日期

Java - 创建 Oracle 日期字段

PHP PDO,排除具有空字段值的行

php - Symfony2 Twig 形式的快捷方式 : form_widget

sql - CURRENT_TIMESTAMP 和 CURRENT_DATE 之间的区别

java - Servlet 获取日期和时间

swift - Click Button如何关闭alertController并获取数据