6

我正在使用 PHP 5.3 并且已经阅读了很多关于这方面的材料,但仍然无法找到解决方案。

我想使用 php 将 1945 年 1 月 10 日的生日从 excel 导入 mysql,无论我尝试什么都没有给我结果(我得到一个负数)

这是我尝试过的最后一个解决方案:

$data 是 excel 文件(我为此使用 excel 阅读器类)

$date_of_birth = ($data->sheets[0]['cells'][$i][11] - 25569) * 86400;

结果是-2207692800

我在这里拧干什么呢?

4

2 回答 2

4

Unix 纪元之前的日期在 PHP 中表示为负数,因此您没有做错任何事情。
当您使用date time时间戳上的任何函数时,您将获得正确的值。

于 2013-05-30T14:11:29.317 回答
1

为什么要尝试将 MSExcel 日期转换为(不兼容的)unix 时间戳,以便将数据放入 MySQL?直接走路线:

$qry="INSERT INTO birthdays (person, birthday)
  VALUES ('$person', 18991231000000 + INTERVAL "
  . $data->sheets[0]['cells'][$i][11] . " DAY)";

(存储在 MSExcel 中的整数值是自 1899 年 12 月 31 日以来的天数)

于 2013-05-30T15:08:39.837 回答