在做项目时,遇到一个问题,就是把Excel中的日期插入到数据库.然而,表中的日期格式(2018-04-17)在数据库中并不支持,所以必须要在插入数据库之前把正常的日期格式改为时间戳.那怎么改呢?小编想过用php程序把正常的日期格式全部用tostring()函数转换为时间戳,让后在Excel表中一个个复制粘贴,然而那样不仅耗时而且还耗费精力,一个日期就要经过三四个流程在加上许多的复制粘贴.小编很不耐烦.所以求助于百度搜索快捷方式了.
正所谓,会者不难,难者不会.小编在网上搜到了许多的资料,都是给出了转换公式,却没有详细步骤.因为对Excel表不熟,所以这次研究了很久.
这是网上的资料,很显然公式是正确的,然而我就是转换不了.小编的操作是这样的 :在Excel表格中,找到日期所在的单元格,右键->设置单元格格式->数字->自定义.
让后把公式A1=(C1-70*365-19)*86400-8*3600复制到自定义输入框中,这样转换总是得不到正确的时间戳.下面是错误的示例
研究了很久之后,才发现自己的错误在哪里,当然也有请教好朋友一些问题.最后才知道,要在新得一列中使用转换日期的公式.正确的操作如下图举个例子:要在红色箭头处第二行得到正确的时间戳,就要修改转换公式为
I2=(J2-70*365-19)*86400-8*3600,而不能直接使用网上给的公式A1=(C1-70*365-19)*86400-8*3600[这个是公式].而要在选中的第四行得到正确的时间戳,就需要改变公式为I4=(J4-70*365-19)*86400-8*3600.如此就可以把Excel表中的日期转换为时间戳了.会了之后,其实也很简单.
当然,如果你要把时间戳转换为日期格式,也是同样的逻辑,只是换下公式就可以实现了.再此.也推荐一下我使用的转换公式:=IF(V:V<>””,INT((V:V-70*365-19)*86400-8*3600),””).这是我的好友范范给的,它还可以实现判断是否为空,空就不进行操作.当然在使用的时候不要忘记V字母的修改,它表示列的代号.非常感谢我同学的帮助.欢迎关注他的博客http://aiti.fun ,也希望这些记载能够帮助有需要的人