【问题标题】:Converting weird timestamp with php date() for Woocommerce使用 php date() 为 Woocommerce 转换奇怪的时间戳
【发布时间】:2018-11-28 08:50:45
【问题描述】:

有问题的时间戳2018-02-08T09:51:54+00:00

我使用 SendinBlue woocommerce 插件来发送我的商店电子邮件并处理模板,但是在插入订单日期时,插件通过 $order->get_date_created() 获得该日期

问题是使用日期时出现调试错误

date() expects parameter 2 to be integer

我假设这是因为 T+:

我仍然不确定在格式化日期时是否错过了一个 woocommerce 技巧,或者这是否是 SendinBlue 插件正在做的事情?

任何帮助表示赞赏。

谢谢

【问题讨论】:

  • 格式在 PHP DATE_ATOM 常量中定义。您可以将这样的时间转换为时间戳:DateTime::createFromFormat(DATE_ATOM, $your_date)->getTimestamp()

标签: php wordpress datetime woocommerce timestamp


【解决方案1】:

两种类似的方式:

1) 使用 Woocommerce:

WC_Order get_date_created() 方法返回一个WC_Datetime 对象。您可以使用 WC_Datetime date() method 重新格式化它,例如:

// Using '2018-02-08T09:51:54+00:00' timestamp
echo $order->get_date_created()->date('Y-m-d H:i:s');

并将显示:2018-02-08 09:51:54


2) 使用 PHP:

或者您可以使用可用的PHP date() formatting arguments 在PHP date() 函数中使用strtotime() 函数重新格式化任何“奇怪”的时间戳。例如:

$timestamp = $order->get_date_created(); // Using '2018-02-08T09:51:54+00:00' timestamp
echo date('Y-m-d H:i:s', strtotime($timestamp));

还将显示:2018-02-08 09:51:54

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2016-04-03
    • 2011-11-20
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2015-10-20
    相关资源
    最近更新 更多