Php 如何获取:FTP服务器的时区设置?
我正在使用PHP的ftp_rawlist函数获取文件列表及其相关的上次修改日期/时间。出于我的目的,我需要知道上次修改日期/时间的时区(或偏移量)。仅日期/时间对我来说是无用的,因为我需要将它们转换为UTCPhp 如何获取:FTP服务器的时区设置?,php,ftp,utc,gmt,Php,Ftp,Utc,Gmt,我正在使用PHP的ftp_rawlist函数获取文件列表及其相关的上次修改日期/时间。出于我的目的,我需要知道上次修改日期/时间的时区(或偏移量)。仅日期/时间对我来说是无用的,因为我需要将它们转换为UTC 有没有办法弄清楚FTP服务器的时区设置是什么?FTP标准中没有定义确定远程服务器时区的方法 如果您有FTP服务器的写入权限,我想您可以上传文件,然后计算FTP报告的文件时间与本地报告的文件时间之差。尝试在PHP代码的开头定义时区 例如: date\u default\u timezone\u
有没有办法弄清楚FTP服务器的时区设置是什么?FTP标准中没有定义确定远程服务器时区的方法
如果您有FTP服务器的写入权限,我想您可以上传文件,然后计算FTP报告的文件时间与本地报告的文件时间之差。尝试在PHP代码的开头定义时区 例如:
date\u default\u timezone\u set(“CET”);
对我来说,这个解决方案可以自动将服务器的时间从不同的时区转换为所需的时区。我最近也遇到了同样的问题。我的方法是在根目录中创建一个名为/time的文件夹,然后将其读回并检查文件夹创建日期。然后,我可以确定ftp客户端和服务器之间的时间差。希望这有帮助 顺便说一句,我正在使用
FTP协议并没有显式地提供localtime。当写访问可用时,您可以上载新文件并检查修改时间。在没有写访问权限的情况下,您可以定期读取FTP目录并记录每个条目的修改时间。当修改时间发生变化时,您肯定知道服务器的本地时间~30分钟的检查就足够了,当然是自动的:)尝试通过ftp\u exec命令运行它:)我应该执行什么命令来获得时区设置?我相信Dreamweaver使用这种方法。该死的。。。这是我要尝试的方法,但我希望会有更好的解决方案。谢谢。但是如果你想获得超精确的夏令时信息,就不能通过这种方式获得。
// Establish a fallback
var servertime = DateTime.Now;
try
{
// query for the existance of a time folder
var timefolder = ftpClient.ListEntries("/").FirstOrDefault(o => o.Name == "time");
// delete it if found
if (timefolder != null)
{
ftpClient.Delete("/time");
}
// if not found create one
ftpClient.Mkd("/time");
timefolder = ftpClient.ListEntries("/").FirstOrDefault(o => o.Name == "time");
if (timefolder == null)
{
Logger.Fatal("Time check failed");
return;
}
// now grab the time of the folder.
servertime = timefolder.Date;
}
catch (Exception x)
{
Logger.Fatal(x,"Time check fatal error");
return;
}