使用php设置infusionsoft返回日期的格式



我编写了获取订阅开始日期的代码;从infusionsoft的结束日期,它以这种格式返回

开始日期=20151217T00:00

结束日期=20161217T00:00

如何将格式设置为YYYY/MM/DD H:M:S?

以及"T"代表

根据ISO 8601标准,T是日期和时间部分之间的分隔符。

参见:ISO 8601标准,维基百科

有两种功能可以使用:

  1. strtotime(date_time_string)

    将日期/时间字符串转换为时间戳。

  2. 日期(格式、时间戳)

    根据"format"将时间戳格式化为字符串。

示例代码…

$so_string = '20151217T00:00:00';
$eo_string = '20161217T00:00:00';
$sd_stamp = strtotime($so_string);
$ed_stamp = strtotime($eo_string);
$f_datetime ='Y/m/d H:i:s';
echo 'Start date<br />';
echo '&nbsp;&nbsp;&nbsp;original: '  . $so_string . '<br />';
echo '&nbsp;&nbsp;&nbsp;timestamp: ' . $sd_stamp . '<br />';
echo '&nbsp;&nbsp;&nbsp;formatted: ' . date($f_datetime,$sd_stamp) . '<br /><br />';
echo 'End date<br />';
echo '&nbsp;&nbsp;&nbsp;original: '  . $eo_string . '<br />';
echo '&nbsp;&nbsp;&nbsp;timestamp: ' . $ed_stamp. '<br />';
echo '&nbsp;&nbsp;&nbsp;formatted: ' . date($f_datetime,$ed_stamp) . '<br />';

…将产生以下输出:

Start date
   original: 20151217T00:00:00
   timestamp: 1450306800
   formatted: 2015/12/17 00:00:00
End date
   original: 20161217T00:00:00
   timestamp: 1481929200
   formatted: 2016/12/17 00:00:00

假设当前开始和结束日期存储在$startDate$endDate变量中。。。

$formattedStartDate = date("Y/m/d H:i:s", strtotime($startDate));
$formattedEndDate = date("Y/m/d H:i:s", strtotime($endDate));

这使用了date()和strtotime()函数

就"T"而言。。。

请注意,"T"在字符串中按字面意思出现,表示时间元素的开始,如ISO 8601中所规定。

https://www.w3.org/TR/NOTE-datetime-970915

您可以使用日期函数格式化时间。

date('YYYY/MM/DD H:M:S',strtotime('$date_value'));

这将DateTime与createFromFormat函数一起使用。有关更多信息,请单击此处。

需要PHP 5>=5.3.0,PHP 7

//infusionsoft format
$startDate = '20151217T00:00:00';
$endDate = '20161217T00:00:00';
//create DateTime object
$startDateTime = DateTime::createFromFormat('YmdTH:i:s', $startDate);
$endDateTime = DateTime::createFromFormat('YmdTH:i:s', $endDate);
//get DateTime with specified format
$newStartTime = $startDateTime->format('Y/m/d H:i:s');
$newEndTime = $endDateTime->format('Y/m/d H:i:s');

相关内容

  • 没有找到相关文章

最新更新