php - PHP strtotime 总是使用 31 天的月份
问题描述
我需要计算以人类可读格式(例如“3 个月 10 天”)表示的持续时间并将其设为时间戳。
我的问题是我的代码使用strtotime
.,所以如果一个月是 30 天,PHP 会将其解释0 months 30 days
为31 days
.
例如,我需要将字符串“1 月 10 天”转换为“31 天 10 天”(或“41 天”)。
$strToTime = strtotime($pMsg);
$unixTimestamp = $strToTime - time();
$unixTimestampM = $unixTimestamp;
$months = floor((float)$unixTimestampM/2678400);
if($months >= 1) {
$unixTimestampM -= $months*2678400;
}
$days = floor((float)$unixTimestampM/86400);
if($days >= 1) {
$unixTimestampM -= $days*86400;
}
依此类推几个小时和几分钟。
使用字符串“1 个月 10 天”,我希望$months
是1
并且$days
是10
,而在一年中的某些时期,$days
成为9
。
解决方案
推荐阅读
- d3.js - 如何在 D3 中在线添加文本?
- python - 在类的实例中,是否可以使用从一个方法返回的值作为调用另一个方法的参数
- jquery - 将 HTML 表转换为 JSON 并将新键设置为 JSON
- rx-java - RxJava 2.0 - 如何从 Completables 发出 Observable
- centos7 - 如何在已经有 VMware ESXi 6.5 服务器的 PRIMERGY TX1310 M1 中安装 CentOS7?
- php - AJAX 不向脚本发送数据
- nginx - 通过 nginx 将 POST 数据传递到 unix 域套接字
- asp.net-core-2.2 - 删除 ASP.Net Core 2.2 InProcess 上的 HTTP 标头
- python - 无法运行天蓝色命令行
- reactjs - 将复杂的 div 容器转换为 React 组件