PHP strtotime始终每月使用31天

时间:2019-07-17 10:10:34

标签: php date datetime

我需要计算以人类可读格式表示的持续时间(例如“ 3个月10天”),并将其作为时间戳记。

我的问题是我的代码使用strtotime,因此如果一个月长30天,PHP会将其解释为0 months 30 days而不是31 days

我需要将例如“ 1 month 10 days”字符串转换为“ 31 days 10 days”(或“ 41 days”)。

$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 month 10 days”,我希望$months1,而$days10,而在一年中的某些时期, $days成为9

0 个答案:

没有答案