首页 > 解决方案 > 如何将 php date_diff 值转换为 javascript 整数?

问题描述

我正在尝试使用两个日期之间的差异来帮助我在HTML canvas. 我在其中生成一个日期PHP并提取另一个存储在SQL数据库中的日期

当我将所有内容都保留在PHPecho'd 输出中时,这正是我所期望的。但是,当我json_encode将输出(我希望是一个整数)用于在 上绘制我想要的形状时canvas,会出现一个与 完全不同的数字javascript

我很确定它与json编码有关......但我无法找到有关如何正确执行此操作的任何参考。

这是PHP我用来抓取、格式化和创建日期差异输出的:

$sdt = new DateTime($row['sdate']);
$today = new DateTime('now');

$sdiff = date_diff($sdt, $today);
$sdelta = $sdiff->format("%a");

如果我将所有这些都保留在变量或PHP变量中,我会得到预期的答案,即 34。echoechojson_encode

echo $sdelta;

结果 34

echo json_encode($sdelta);

结果为“34”;

echo json_decode($sdelta);

结果为34;

但是,当我将此值分配给javascript变量并测试分配结果时:

var diffdt = <?php echo json_encode($sdelta); ?>;
alert(diffdt);

弹出窗口显示alert199。

如果有人可以帮助我解决这个问题,我将永远感激不尽。


额外的信息...

标签: javascriptphp

解决方案


必须使用我在这里使用的“Number(your_number)”方法,见底线:

<script type="text/javascript">

    // To set two dates to two variables 
    var date1 = new Date("06/30/2019"); 
    var date2 = new Date("07/30/2019");

    // To calculate the time difference of two dates 
    var Difference_In_Time = date2.getTime() - date1.getTime();

    // To calculate the no. of days between two dates 
    var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24); 

    console.log(Number(Difference_In_Days));
</script>

推荐阅读