将日期函数从JavaScript转换为PHP

converting date functions from javascript to php

本文关键字:转换 PHP JavaScript 日期 函数      更新时间:2023-09-26

我正在将一年多前在javascript中制作的时间差函数转换为php函数。其中大部分都非常相似,但有一部分我无法弄清楚。setMonth()函数有点类似于$date->modify,但值以不同的格式返回,这让我感到困惑。如果有人能找到与以下javascript等效的php,我将不胜感激。谢谢。

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

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

使用 -> 修改添加月份

$currentDate -> 修改('+' . $months ."月");

使用 -> 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'));