我需要计算以人类可读格式表示的持续时间(例如“ 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”,我希望$months
是1
,而$days
是10
,而在一年中的某些时期, $days
成为9
。