我正在将一年前在javascript中制作的时间差异函数转换为php函数。其中大部分非常相似,但有一部分我无法弄清楚。 setMonth()
函数与$date->modify
类似,但值以不同的格式返回,让我感到困惑。如果任何人可以找到一个PHP等于以下的JavaScript,我将非常感激。感谢。
var date1 = new Date();
var date2 = date('some date');
var dayDiff = date1.setMonth(date1.getMonth() + month);
var day = Math.abs(Math.floor((date2.getTime() - dayDiff) / (1000 * 60 * 60 * 24)));
答案 0 :(得分:1)
php的官方网站: http://php.net/manual/fr/datetime.diff.php
$ currentDate - >修改('+'。$ months。'month');
$ interval = $ currentDate - > diff($ otherDate,true);
第二个布尔参数表示您不关心负差异,输出将始终为正(如您的Math.abs在javascript版本中所做的那样)。
$ interval->格式('%R%a days')
// If you need to set the timezone
date_default_timezone_set('America/New_York');
// Whatever month you want to add to $currentDate
$months = 2; // months has to be an int
$currentDate = new DateTime();
$otherDate = new DateTime('2014-01-04');
$currentDate -> modify('+' . $months . ' month');
$interval = $currentDate -> diff($otherDate, true);
echo($interval->format('%R%a days'));