Это было опробовано на Centos 6.10 с PHP 7.1 Запуск
<?php
set_time_limit(0);
function tester(callable $callback) {
$times = [];
for($j = 0; $j < 10; $j++) {
$time = microtime(true);
for($i = 0; $i < 100000; $i++) {
$callback();
}
$newTime = microtime(true);
$times[] = round($newTime - $time, 3).'<br>';
}
echo (array_sum($times) / count($times)).'<br>';
}
function stt() {
strtotime('-1 month');
}
function mt() {
mktime(1, 1, 1, date("n") - 1);
}
echo 'StrToTime<br>';
tester('stt');
echo 'mktime<br>';
tester('mt');
Результаты, которые я получаю:
StrToTime
1.4881
mktime
2.1647
Резюме: strtotime быстрее