莫名其妙,转换时间戳,头尾一笔一直颠倒。
本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />EXCEL自动转换没错,
复制、粘贴报表跑出来的时间戳。
报表第一笔,和最后一笔,刚好转换值颠倒。。。
莫名其妙,求解。。。
本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />有公式么?报表第一条记录和excel中不一样? 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />函数、公式,来自网上搜索。
总结如下:
===========================
日期时间戳转换日期格式
---------------------------------------
PHP代码用法:date("Y-m-d", $row["时间戳"])
EXCLE公式用法:=(时间戳+8*3600)/86400+70*365+19
这个公式的原理:
Excel的日期实际上是序列值,它以1900-1-1为1,每过一天序列值加1。
而Unix时间戳是从1970-1-1 0:00:00 UTC开始到现在经过的秒数。
用x表示时间戳,可得到换算公式:
x+8*3600 当前时区的时间(秒)
(x+8*3600)/86400 转换单位为天
(x+8*3600)/86400+70*365 加上1900到1970这七十年
(x+8*3600)/86400+70*365+19 闰年多出来的天数
细心的话你会发现,1900年到1970年共是17个闰年,
考虑到Excel将1900-1-1当作1,那么公式最后应该加18才对,
为什么要加19?这是Excel中的一个bug——1900年也被当作闰年,因此应当再多加一天。
另外要注意,在Excel的工具->选项->重新计算中,有个1904年日期系统,
如果勾选这个选项,上面的公式应当将70改为66,即
=(x+8*3600)/86400+66*365+19
===========================
本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />EXCEL表公式:
=IF(E5="","",(E5+8*3600)/86400+70*365+19)
E5为数字型,显示时间戳。
直接复制查询列表,如下:
很明显,第一笔E1058有问题。,应该是E5的。
1 XXXXXX有限公司 =IF(E1058="","",(E1058+8*3600)/86400+70*365+19) 1400490512
2 深圳市XXX有限公司 =IF(E6="","",(E6+8*3600)/86400+70*365+19) 1400490277
3 XXX =IF(E7="","",(E7+8*3600)/86400+70*365+19) 1400489797
然后最后一笔,E1058是对滴。
1054 XXXX =IF(E1058="","",(E1058+8*3600)/86400+70*365+19) 1354234325
反复查看公式,没特殊情况。。。
找不到原因。。。 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />很简单的一个查询表:
提取<数据源_CRM2.XXX>中满足下列条件的数据:
<筛选条件:数据源_CRM2.XXX.displayorder=0>
按以下方式填入<本报表.OV801客户拜访记录NEW>:
数据源_CRM2.XXX.subject ->(填入值) 本报表.OV801客户拜访记录NEW.客户名称 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />既然是提取过来的,就以报表显示的为准。 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />既然是提取过来的,就以报表显示的为准。
问题第一笔明显不准啊
抓出的报表,第一笔明显是抓的最后一笔的EXCEL栏位。
升、降排序,或去排序,都一样的结果。
河水兄有遇到过这种情况? 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />没看出是什么问题。 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />我也没找到什么问题,但就是结果不不符合预想设计。 本帖最后由 通达林河水 于 2016-7-30 15:52 编辑 <br /><br />第一图左右两个数据是一一对应的,是正确的。
页:
[1]
2