【问题标题】:Easier way to convert date() to formal?将 date() 转换为正式的更简单方法?
【发布时间】:2023-03-14 12:50:02
【问题描述】:

有没有更简单的编码方式?当我的服务器有时每秒高达 300 次单独调用这个转换时,调用一个简单的转换需要 1.6kb,或者我只是一个谨慎的人?

还要注意,这不是我编写的唯一一个这样的转换函数,而且服务器的构建速度相当快(~0.3%/24 小时)。

任何帮助将不胜感激!先感谢您! :)

<?php
function date2formal($a) {
    $y = substr($a, 0, 4);
    switch(substr($a, 5, 2);) {
        case "01": $m = "January"; break;
        case "02": $m = "February"; break;
        case "03": $m = "March"; break;
        case "04": $m = "April"; break;
        case "05": $m = "May"; break;
        case "06": $m = "June"; break;
        case "07": $m = "July"; break;
        case "08": $m = "August"; break;
        case "09": $m = "September"; break;
        case "10": $m = "October"; break;
        case "11": $m = "November"; break;
        case "12": $m = "December"; break;
    }
    switch(substr($a, 8, 2)) {
        case "01": $d = "1st"; break;
        case "02": $d = "2nd"; break;
        case "03": $d = "3rd"; break;
        case "04": $d = "4th"; break;
        case "05": $d = "5th"; break;
        case "06": $d = "6th"; break;
        case "07": $d = "7th"; break;
        case "08": $d = "8th"; break;
        case "09": $d = "9th"; break;
        case "10": $d = "10th"; break;
        case "11": $d = "11th"; break;
        case "12": $d = "12th"; break;
        case "13": $d = "13th"; break;
        case "14": $d = "14th"; break;
        case "15": $d = "15th"; break;
        case "16": $d = "16th"; break;
        case "17": $d = "17th"; break;
        case "18": $d = "18th"; break;
        case "19": $d = "19th"; break;
        case "20": $d = "20th"; break;
        case "21": $d = "21st"; break;
        case "22": $d = "22nd"; break;
        case "23": $d = "23rd"; break;
        case "24": $d = "24th"; break;
        case "25": $d = "25th"; break;
        case "26": $d = "26th"; break;
        case "27": $d = "27th"; break;
        case "28": $d = "28th"; break;
        case "29": $d = "29th"; break;
        case "30": $d = "30th"; break;
        case "31": $d = "31st"; break;
    }
    return $m.", ".$d.", ".$y;
}
?>

谢谢!!!

我稍微调整了您的答案以节省几个字节,结果与我的原始代码相比,在 15 分钟的实时测试中显示 ~0.113%/client! (总体而言,所有功能将节省更多...估计>2%!)

function date2formal($a) {$b = new DateTime(substr($a, 0, 10)); return $b->format('F, jS, Y');}

【问题讨论】:

  • 考虑使用 DateTimeInterface 或至少 date() 函数处理日期。然后你会有很多有用的功能,比如php.net/manual/en/datetime.format.php
  • 添加了一个例子(见答案)。日期和时间怎么样,PHP 具有涵盖 99% 的情况的预构建功能,恕我直言。

标签: php function time


【解决方案1】:

使用日期时间的示例:

$dateStr = '2021-07-20';
$date = new DateTime($dateStr);
$dateFormated = $date->format('F, jS, Y');

【讨论】:

  • 谢谢!你只是把我的编码减少了 95%!
猜你喜欢
  • 2012-04-15
  • 1970-01-01
  • 2020-05-17
  • 2011-09-18
  • 1970-01-01
  • 2020-10-03
  • 2010-11-09
  • 1970-01-01
  • 2012-09-02
相关资源
最近更新 更多