将日期函数从javascript转换为php

时间:2014-11-16 22:05:08

标签: javascript php

我正在将一年前在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)));

1 个答案:

答案 0 :(得分:1)

php的官方网站: http://php.net/manual/fr/datetime.diff.php

使用 - >添加月份修改

$ currentDate - >修改('+'。$ months。'month');

使用 - >获取日期差异DIFF

$ 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'));