我有一个PHP脚本输出日期,如2014-08-06
,我希望将它们输出为Wednesday 6th August 2014
。
我之前已经在使用这个数字所以我需要从变量中取出这个数字字符串并转换它。
PHP
function dateRange($start, $end) {
date_default_timezone_set('UTC');
$diff = strtotime($end) - strtotime($start);
$daysBetween = floor($diff/(60*60*24));
$formattedDates = array();
for ($i = 0; $i <= $daysBetween; $i++) {
$tmpDate = date('Y-m-d', strtotime($start . " + $i days"));
$formattedDates[] = date('Y-m-d', strtotime($tmpDate));
}
return $formattedDates;
}
$start=$date_system_installed;
$end=$today;
$formattedDates = dateRange($start, $end);
foreach ($formattedDates as $dt)
{
echo $dt; //this is where i wish to change the number to the word/s.
}
答案 0 :(得分:0)
您可以使用DateTime::createFromFormat
和DateTime::format
创建DateTime
对象,然后以您想要的格式创建字符串:
echo DateTime::createFromFormat('Y-m-d', $dt)->format('l jS F Y');
理想情况下,我要做的是一直使用DateTime
对象:
function dateRange($start, $end) {
date_default_timezone_set('UTC');
$daysBetween = $start->diff($end)->format('%R%a');
$formattedDates = array();
for ($i = 0; $i <= $daysBetween; $i++) {
$formattedDates[] = clone $start->modify('+1 day');
}
return $formattedDates;
}
$start = DateTime::createFromFormat('Y-m-d', "2014-08-01");
$end = new DateTime;
$formattedDates = dateRange($start, $end);
foreach ($formattedDates as $dt)
{
echo $dt->format('l jS F Y');
}
在此处查看:http://sandbox.onlinephpfunctions.com/code/2003646deb0b39d501d7e49eb23edc3979a10762
答案 1 :(得分:0)
您可以使用功能date
http://php.net//manual/en/function.date.php
例如:
<?php
$date = strtotime('2014-08-06');
echo date('l jS F Y', $date); //Wednesday 6th August 2014
/*
l - full name of week day, jS - day of month with suffix,
F - full name of month, Y - year
*/