PHP 人类日期范围/持续时间格式

2024-03-02

PHP 制作得非常好,我想知道是否有一个函数可以满足我的需要。

对于持续超过一天的事件,人类的格式化方式很复杂。

例子...

事件一:从 2015-04-20 到 2015-04-22 可以针对人类进行格式化,如下所示:2015 年 4 月 20-22 日

事件二:从2015-04-01到2015-05-31人类->2015年4月-5月

活动三:2015年4月30日至2015年5月2日人类->2015年4月30日至5月2日

简而言之,不要重复不需要重复的事情。尽量用“-”连接。

它必须进行本地化,并且格式可能会根据本地情况而改变。例如,美国人喜欢 MonthName DayNumber Year,但法国人喜欢 DayNumber MonthName Year。

我正计划对这种格式进行编程,但我想知道它是否已经存在:)


这有效...

function humanDateRanges($start, $end){
    $startTime=strtotime($start);
    $endTime=strtotime($end);

    if(date('Y',$startTime)!=date('Y',$endTime)){
        echo date('F j, Y',$startTime) . " to " . date('F j, Y',$endTime);
    }else{
        if((date('j',$startTime)==1)&&(date('j',$endTime)==date('t',$endTime))){
            echo date('F',$startTime) . " to " . date('F, Y',$endTime);
        }else{
            if(date('m',$startTime)!=date('m',$endTime)){
                echo date('F j',$startTime) . " to " . date('F j, Y',$endTime);
            }else{
                echo date('F j',$startTime) . " to " . date('j, Y',$endTime);
            }
        }
    }
}

humanDateRanges("2015-04-20", "2015-04-22");
//April 20 to 22, 2015
humanDateRanges("2015-04-01", "2015-05-31");
//April to May, 2015
humanDateRanges("2015-04-30", "2015-05-02");
//April 30 to May 2, 2015
humanDateRanges("2014-05-02", "2015-05-02");
//May 2, 2014 to May 2, 2015

但我确实认为在某些情况下,即使是人类也需要被告知 4 月至 5 月将从 1 号开始,到 31 号结束。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 人类日期范围/持续时间格式 的相关文章

随机推荐

  • 并行启动测试时 Django 的“override_settings”装饰器如何工作

    我正在检查 Django 的设置模块是如何构建的以及如何覆盖设置 https docs djangoproject com en 3 2 topics testing tools django test override settings装
  • 在控件上使用 DoubleBuffer 的优点和缺点

    默认情况下 Windows 控件没有 DoubleBuffer 当我使用它时 我可以减少闪烁 为什么它在 Windows 控件中默认不使用 任何人都可以说出在控件上使用 DoubleBuffer 时的优点和缺点 Thanks 当我们想要创建
  • Web api 身份验证和 MVC 4

    我有以下解决方案 Web API 项目 MVC 4 项目 我需要通过使用 JSON 请求发送凭据来对用户进行身份验证 https 是必须的 这是一个好方法吗 以及如何在 Web api 和 MVC 上对用户进行身份验证 这是一个好方法吗 是
  • 如何在 django 中使 @cached_property 无效

    我目前正在使用 cached property在模型类上 我想在保存时删除它 以便可以在下次调用时重新填充它 我该怎么做呢 例子 class Amodel model fields cached property def db connec
  • Linux调度程序需要上下文切换吗?

    我有一个关于 linux 调度程序和其他一些类似的内核系统调用的一般问题 Linux调度程序是否被视为一个 进程 并且对调度程序的每次调用都需要像另一个进程一样进行上下文切换 假设我们有一个时钟滴答声 它会中断当前正在运行的用户模式进程 现
  • Excel 检测并跟踪任何工作表中的(值)变化

    我已经设法编写了一个代码来检测任何工作表中特定单元格的值变化 但我一直在努力构建一些检测和跟踪范围 值 变化的代码 例如 如果用户决定复制并粘贴某些范围的数据 假设超过 1 个单元格 宏将不会捕获它 用户选择一个范围 然后在仍选择范围的情况
  • 反转动画

    我有一个 ImageView 当它添加到布局中时它会变得动画 当它被删除时 我想反转相同的动画 有没有办法在android中反转动画而不需要重新编码和反转参数 不 遗憾的是你不能用动画对象来做到这一点 但您可以使用插值器来模拟它 该插值器将
  • IPython Notebook - 在 Javascript 中检测内核是否繁忙/空闲

    我目前正在尝试使用 IPython 笔记本获得交互式绘图 我遇到的问题之一是 当通过 javascript 中的 IPython notebook kernel execute 方法执行 Python 代码时 我无法知道该代码何时完成执行
  • Jenkins - 同时运行单个构建的实例

    我希望能够同时运行同一个 Jenkins 作业的多个构建 Example 构建 jenkins job 1 使用参数 A 调用 ant 脚本 构建 jenkins job 1 使用参数 B 调用 ant 脚本 根据需要重复 作业的每个实例同
  • 是否可以将 Series 附加到 DataFrame 的行而不先创建列表?

    我有一些数据正在尝试组织成DataFrame in Pandas 我试图让每一行Series并将其附加到DataFrame 我找到了一种方法 通过附加Series到一个空的list然后转换list of Series to a DataFr
  • 如何在 ggtern 中显示数据的真实值 (%)?

    我希望得到与下例所示大致相同的结果 我在这两个函数之间犹豫是否要得到这个结果 geom crosshair tern and scale X continuous 汉密尔顿 NE 和费里 M 2018 ggtern 使用 ggplot2 的
  • 在 Node.js 的回调周围放置返回值

    一点背景知识 我使用node js 发现通过返回可以避免许多错误all异步代码中的回调 例如 function useMyAsyncFunc stuff c callback myAsyncFunc stuff a stuff b c fu
  • 裸露和非裸露 Git 存储库的区别[重复]

    这个问题在这里已经有答案了 在 git 中 我只是想知道裸存储库和非裸存储库之间有什么区别 我知道裸存储库通常只是推送到其中并且不会在其中进行更改 除此之外 它与非裸存储库有何不同 裸存储库只有 git 文件夹 没有签出的源代码树 裸存储库
  • 在 CakePHP 中保存空间数据

    我在使用 saveAll 在 CakePHP 中保存空间数据时遇到问题 我真的不想手动编写查询 在 CakePHP 中处理空间数据 https stackoverflow com questions 4598834 handling spa
  • timeout 和 browserTimeout 的区别

    我刚刚开始使用 Selenium Grid 我当前面临的问题是测试崩溃时 浏览器永远保持打开状态 直到我到达并亲自关闭它 以便可以开始下一组测试 我注意到 NODE 配置有两种超时配置 一种用于 timeout另一个用于 browserTi
  • 有没有办法在不加载rubygems的情况下调用ruby1.9?

    所以 ruby 1 9 真的很好 因为它会自动需要 ruby gems 因此当你调用require somegem 不需要首先需要 ruby gems 它就可以工作 这通常很棒 但我有大量使用 ruby 的 shell 脚本 它们通常不依赖
  • 对 static constexpr char[] 的未定义引用

    我想要一个static const char我班上的数组 GCC 抱怨并告诉我我应该使用constexpr 尽管现在它告诉我这是一个未定义的引用 如果我将数组设置为非成员 那么它就会编译 到底是怎么回事 hpp struct foo voi
  • 查找java类中所有对方法的调用

    我有一个包含很多课程的庞大项目 我有一个非常具体的课程 让我们命名它SuperFoo 我需要找到对该方法的所有调用equals 带类型参数Superfoo 希望它是清楚的 所以 再一次 在数千个java文件 或字节码 中我想找到对该方法的所
  • 如何防止 del *.txt 出现“找不到”错误消息?

    在 Windows 批处理文件中 此行 del txt 将给出错误 警告消息 Could Not Find C txt 如果没有与模式 txt 匹配的文件 有没有办法阻止该消息 if exist txt del txt
  • PHP 人类日期范围/持续时间格式

    PHP 制作得非常好 我想知道是否有一个函数可以满足我的需要 对于持续超过一天的事件 人类的格式化方式很复杂 例子 事件一 从 2015 04 20 到 2015 04 22 可以针对人类进行格式化 如下所示 2015 年 4 月 20 2