当我想计算天数差异时(以date1和date2为例):
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,debit INT NULL
,credit INT NULL
);
INSERT INTO my_table VALUES
(1,NULL,35),
(2,65,NULL),
(3,NULL,35),
(4,65,NULL),
(5,65,NULL),
(6,65,NULL);
SELECT id
, debit
, credit
, @balance := @balance+(COALESCE(debit,credit*-1)) balance
FROM my_table
, (SELECT @balance :=0) vars
ORDER
BY id;
+----+-------+--------+---------+
| id | debit | credit | balance |
+----+-------+--------+---------+
| 1 | NULL | 35 | -35 |
| 2 | 65 | NULL | 30 |
| 3 | NULL | 35 | -5 |
| 4 | 65 | NULL | 60 |
| 5 | 65 | NULL | 125 |
| 6 | 65 | NULL | 190 |
+----+-------+--------+---------+
结果是:
2
但是与此同时做的是:
$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
返回:
4.9583333333333
此问题可以通过以下方式解决:$date1 = '2019-03-27';
$date2 = '2019-04-01';
echo((strtotime($date2) - strtotime($date1)) / 86400);
。
但是,为什么默认情况下PHP在某些日期不使用相同的时区呢?
答案 0 :(得分:2)
3月底某个时区的冬令时间与夏令时间有所变化,因此其中一天只有23小时,因此它不能被86400(24小时)整齐划一。