excel日期导入问题? excel有日期"2011-07-16 17:50:50"可是导入php的web页的时候就变成"40740.7436342593"我怎么才能把这个数据导入到mysql(在mysql里面也显示2011-07-16)里面去呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 php 的时间是从 1970-01-01 00:00:00 开始的excel 的时间是从 1900-01-01 00:00:00 开始的两者相差天数用 php 计算 25566用 mysql 计算 25567从验证你的数据反推 25569我也有点糊涂了,你多验证几组数据就可确定下来40740.7436342593整数部分 40740 表示自 1900-01-01 00:00:00 以来的天数小数部分 7436342593 表示该时间占全天的比例echo date('Y-m-d H:i:s', (40740.7436342593 - 25569) * 86400); 你的excel的日期要加个’号 比如2010-1-1 要改成 ’2010-1-1 这样mysql导入就正常了 使用strtotime函数进行转换即可:strtotime(PHP 4, PHP 5)strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳说明int strtotime ( string $time [, int $now ] )本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。 本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在 date_default_timezone_get() 函数页面中有说明。 Note: 如果给定的年份是两位数字的格式,则其值 0-69 表示 2000-2069,70-100 表示 1970-2000。 参数time 被解析的字符串,格式根据 GNU » 日期输入格式的语法。在 PHP 5.0 之前,time 中不允许有毫秒数,自 PHP 5.0 起可以有但是会被忽略掉。 now 用来计算返回值的时间戳。 返回值成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。 更新日志版本 说明 5.1.0 失败时返回 FALSE,不再是 -1。 范例Example #1 strtotime() 例子<?phpecho strtotime("now"), "\n";echo strtotime("10 September 2000"), "\n";echo strtotime("+1 day"), "\n";echo strtotime("+1 week"), "\n";echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";echo strtotime("next Thursday"), "\n";echo strtotime("last Monday"), "\n";?> Example #2 失败检查<?php$str = 'Not Good';// previous to PHP 5.1.0 you would compare with -1, instead of falseif (($timestamp = strtotime($str)) === false) { echo "The string ($str) is bogus";} else { echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);}?> #新手来袭# 关于MAIL()函数和SMTP 一个PHP环境下,日期比较的代码问题,应该如何修改? 有谁用php做过修改css文件的程序吗? 不得不BS一下! 网页上执行一个php,然后关闭页面,能否让该后台程序还是能运行,每个5秒发封邮件 自己的MYSQL文件在哪里存着呢啊 怎么得到一个字符串在另外一个字符串中的位置? 请问如何这样设定变量?…… 请问apache 为什么不能正常运行?显示信息在正文中,在线等候!!! PHP日期问题,请高手赐教! 100分求高人指点 关于复选框表单传递问题.对您来说可能是举手之劳,对我而言可能是3天3夜的苦思 JAVA转PHP
excel 的时间是从 1900-01-01 00:00:00 开始的
两者相差天数
用 php 计算 25566
用 mysql 计算 25567
从验证你的数据反推 25569
我也有点糊涂了,你多验证几组数据就可确定下来40740.7436342593
整数部分 40740 表示自 1900-01-01 00:00:00 以来的天数
小数部分 7436342593 表示该时间占全天的比例echo date('Y-m-d H:i:s', (40740.7436342593 - 25569) * 86400);
strtotime
(PHP 4, PHP 5)strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳说明
int strtotime ( string $time [, int $now ] )
本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。 本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在 date_default_timezone_get() 函数页面中有说明。 Note: 如果给定的年份是两位数字的格式,则其值 0-69 表示 2000-2069,70-100 表示 1970-2000。
参数time
被解析的字符串,格式根据 GNU » 日期输入格式的语法。在 PHP 5.0 之前,time 中不允许有毫秒数,自 PHP 5.0 起可以有但是会被忽略掉。 now
用来计算返回值的时间戳。
返回值
成功则返回时间戳,否则返回 FALSE。在 PHP 5.1.0 之前本函数在失败时返回 -1。 更新日志
版本 说明
5.1.0 失败时返回 FALSE,不再是 -1。
范例Example #1 strtotime() 例子<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>
Example #2 失败检查<?php
$str = 'Not Good';// previous to PHP 5.1.0 you would compare with -1, instead of false
if (($timestamp = strtotime($str)) === false) {
echo "The string ($str) is bogus";
} else {
echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
?>