不同的PHP脚本在线行为
我有以下问题。我有一个脚本,可以获取电视节目的播出日期,在保存到数据库之前我会修改它。在我的本地主机上,它工作得很好,但当我在线尝试并将其上传到我的web服务器时,它显示出不同的行为。我不知道为什么会这样 以下是一些例子:不同的PHP脚本在线行为,php,date,Php,Date,我有以下问题。我有一个脚本,可以获取电视节目的播出日期,在保存到数据库之前我会修改它。在我的本地主机上,它工作得很好,但当我在线尝试并将其上传到我的web服务器时,它显示出不同的行为。我不知道为什么会这样 以下是一些例子: 我得到的数据:2012年1月22日播出 我的剧本的结局应该是什么:2012-01-22 我在网上得到的:2022/12-- 我得到的数据:2011年8月29日播出 我的剧本的结局应该是什么:2011-08-29 我在网上得到的:2029/11-- 我得到的数据:Airs
我得到的数据:2012年1月22日播出 我的剧本的结局应该是什么:2012-01-22 我在网上得到的:2022/12--
我得到的数据:2011年8月29日播出 我的剧本的结局应该是什么:2011-08-29 我在网上得到的:2029/11--
我得到的数据:Airs 2/12/12 我的剧本的结局应该是什么:2012-02-12 我在网上的收获:2012/12--
以下是我的PHP脚本:
if(strstr($serie['airdate'], 'Airs')) {
$date = substr($serie['airdate'], 5);
}
if(strstr($serie['airdate'], 'Aired')) {
$date = substr($serie['airdate'], 6);
}
$mm = strstr($date, "/", true);
$mmStrLen = strlen($mm);
if((strlen($mm)) == "1") {
$mm = "0".$mm;
}
$dd = substr($date, $mmStrLen+1);
$dd = strstr($dd, "/", true);
$ddStrLen = strlen($dd);
if((strlen($dd)) == "1") {
$dd = "0".$dd;
}
$yy = substr($date, $mmStrLen+1+$ddStrLen+1);
if((strlen($yy)) == "1") {
$yy = "0".$yy;
}
$serie['date'] = "20".$yy."-".$mm."-".$dd;
$serie['airdate']是我获取的数据,$serie['date']是保存修改后的值的位置
我在本地使用的PHP版本是5.3.8,我的webhoster版本是5.2.17。但我想这不是问题的根源。看看您在本地拆分的原始日期字符串与在服务器拆分的原始日期字符串。我敢打赌,操作系统的日期格式在本地与在服务器上不同,而且您的字符串拆分代码并不是为处理服务器使用的不同格式而设计的。看看您在本地拆分的原始日期字符串与在服务器上拆分的原始日期字符串。我敢打赌,操作系统的日期格式在本地与服务器上是不同的,而且您的字符串拆分代码并不是为处理服务器使用的不同格式而设计的。处理日期的代码太多了。你试过使用这个功能吗?您可以将其与函数配对,以便在PHP中轻松地重新格式化日期。处理日期的代码太多了。你试过使用这个功能吗?您可以将其与函数配对,以便在PHP中轻松地重新格式化日期。无法将注释格式化为代码,因此我必须将其作为答案编写 请两边都试试这个
$x=explode(' ',$serie['airdate']);
if (sizeof($x)!=2) die("Error in step 1");
$x=explode('/',$x[1]);
if (sizeof($x)!=3) die("Error in step 2");
$serie['date']=sprintf("20%02d-%02d-%02d",$x[2],$x[0],$x[1]);
无法将注释格式化为代码,因此我必须将其作为答案编写 请两边都试试这个
$x=explode(' ',$serie['airdate']);
if (sizeof($x)!=2) die("Error in step 1");
$x=explode('/',$x[1]);
if (sizeof($x)!=3) die("Error in step 2");
$serie['date']=sprintf("20%02d-%02d-%02d",$x[2],$x[0],$x[1]);
因为他没有使用日期函数,所以我们看到的都是
$serie['airdate']
。我们怎么知道它是从哪里来的?它可能来自RSS提要,也可能来自格式不同的数据库,ajax脚本可以从不同的网站获取。内容总是一个简单的字符串,如“Aired 8/29/11”。因为他没有使用日期函数,所以我们看到的是$serie['airdate']
。我们怎么知道它是从哪里来的?它可能来自RSS提要,也可能来自格式不同的数据库,ajax脚本可以从不同的网站获取。内容总是一个简单的字符串,如“8/29/11播出”。您是否验证了在线版本中的数据?我知道web服务会根据您的机器的物理位置(通过IP)使用不同的日期格式。我还将获得的原始airdate数据保存在数据库中,并且它与脱机时完全相同。。如果你是这个意思?你验证过你在网上得到的数据吗?我知道web服务会根据您的机器的物理位置(通过IP)使用不同的日期格式。我还将获得的原始airdate数据保存在数据库中,并且它与脱机时完全相同。。如果你是这个意思?这可能更适合作为评论而不是答案。这可能更适合作为评论而不是答案。是的,这似乎对双方都有效!!非常非常感谢!!是的,这似乎对双方都有效!!非常非常感谢!!