0

我正在编写脚本,用户可以在其中下达特定类型的订单。现在,当用户下订单时,他们可以选择在 # 天内他们不会持续多久。下订单后,我需要批准他们的订单,并且批准日期记录在我的数据库中。现在我需要在他们的用户面板中显示自我批准之日起他们的包裹将持续多少天。因此,例如,如果我在 2013 年 9 月 8 日批准了他们的订单并且他们选择了持续 7 天的订单,我不会让他们在他们的面板内看到他们登录后的每一天还剩多少天,所以 7 天、6 天、5 天,等等......当他们在 2013 年 9 月 16 日来到他们的小组时,一直到“0 天”。

对于这两个值,我有以下变量:

$row_ordersResults['date'] - 我批准订单的日期 $row_ordersResults['drip_feed'] - 他们的订单不会持续的天数

我自己尝试了很多组合,但我完全坚持这一点,无法让它发挥作用。

感谢帮助!

4

2 回答 2

1

momentjs.com 上的库非常酷。但是,如果您只是想要一些简单的东西来计算两个时间值之间的“日期差”,那么有一种相对简单的方法可以做到这一点。我假设您希望它在 Javascript 中完成。

您需要做的就是清除两个日期的小时/分钟/秒/毫秒字段,计算它们的天数差异。将下面的脚本放在任何网络浏览器中,您就会看到它是如何工作的。

<script>
function foo() {
    var d1 = new Date(2013, 8, 12, 13, 40, 1, 333); // any date value, last 4 params can be anything
    var d2 = new Date(2013, 9, 3, 11, 42, 32, 533);

    d1.setHours(0); d1.setMinutes(0); d1.setSeconds(0); d1.setMilliseconds(0);
    d2.setHours(0); d2.setMinutes(0); d2.setSeconds(0); d2.setMilliseconds(0);
    daysLeft = (d2.getTime() - d1.getTime())/(24*60*60*1000);

    alert('Dear customer, there is(are) ' + daysLeft + ' day(s) left on your order!' );
}
</script>
<a href="#" OnClick="foo()">Show Remaining Days on Order</a>

编辑:添加 PHP 版本

<?php

$d1 = New DateTime('2013-08-28 06:25:00');
$d2 = new DateTime(); // now
$drip = 55;

$interval = $d2->diff($d1); // time difference
$days_left = $drip - $interval->format('%a'); // in days, subtract from drip
echo "There are $days_left days left\n";

?>
于 2013-09-15T05:38:11.507 回答
0

我希望我不会因为没有给出具体答案而被打分,但是时间和日期的计算非常繁琐,而且 JavaScript 的 Date() 提供的选项有限。因此,与其提供一些丑陋的代码,我建议您在 momentjs.com 上查看 moment.js。将脚本附加到页面后,您可以轻松管理各种日期格式,并设置一个函数,允许您对日期进行数学运算并自动生成日期范围 - 它甚至可以让您将它们格式化为用户友好的格式,例如“在 3 天内”,我认为这是您想要的。如果您的应用程序与时间有关,而且大多数都与时间有关,那么我对 Moment 的推荐不够高。

于 2013-09-08T22:03:03.570 回答