将日期数字字符串转换为Word of day PHP


Converting a Date Number String to Word of day PHP

我有一个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. 
}

您可以使用DateTime::createFromFormatDateTime::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

可以使用函数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
    */