php - 以“格式”返回日期 本月” php
问题描述
使用 strtotime 很容易返回给定月份的第 n 天,strtotime
例如
date("j, d-M-Y", strtotime("second wednesday 2018-10"));
有没有办法做相反的事情?例如,如果我要检查今天的日期(2018 年 10 月 2 日,星期二)。我想回到“本月的第一个星期二”。
解决方案
我不知道可以执行您的问题的 PHP 库。我已经尝试编写一个函数来执行我认为您想要的操作,并且您可以修改返回的字符串以获得所需的输出。
但这是一个工作示例:https ://3v4l.org/37BRW
function dateToOrdinalString($date) {
// Convert datestring to timestamp, and prepare day, month, and year names
$timestamp = strtotime($date);
list($day, $month, $year) = explode(' ', date('l F Y', $timestamp));
// Prepare ordinals
$ordinals = ['first', 'second', 'third', 'fourth', 'fifth'];
// Iterate through ordinal values
foreach ($ordinals as $ordinal) {
$string = "{$ordinal} {$day} of {$month} {$year}";
// Compare original and ordinal timestamp for equality
if ($timestamp === strtotime($string)) return $string;
}
return false;
}
echo dateToOrdinalString('2018-12-25');
// fourth Tuesday of December 2018
推荐阅读
- php - 如何在 php 中使用 for 制作 zig-zag 数字?
- php - 当前行与前一行的 PHP Oracle 减法
- java - 从 Java 服务运行 .exe
- javascript - 在不打开电子邮件客户端的情况下从 RN Expo 应用发送静默电子邮件
- python - 如何使用 OR 语句比较整数(python)
- node.js - 为什么 npm 无法启动?
- sql - PostgreSQL为另一个表的所有行创建外键
- azure - 所有通过 Sendgrid 阻止的电子邮件,如何再次发送电子邮件?
- mysql - 如何进行具有多个关系的查询?
- django - 我如何从 3 个表 django 中获取数据 manytomay 关系