我使用PHP的ftp_rawlist函数来获取文件及其相关的最后修改日期/时间的列表。出于我的目的,我需要知道上次修改日期/时间的时区(或偏移量)。日期/时间对我来说是无用的,因为我需要将它们转换为UTC。
有没有办法弄清楚FTP服务器的时区设置是什么?
发布于 2010-07-27 10:05:57
FTP标准中没有定义方法来确定远程服务器的时区。
如果你对FTP服务器有写权限,我猜你可以上传文件,然后计算FTP报告的文件时间与本地报告的文件时间之间的差异。
发布于 2015-09-09 13:37:26
尝试在PHP代码的开头定义您的时区。
示例:
date_default_timezone_set("CET");对我来说,这个解决方案是有效的,因为它自动将服务器的时间从不同的时区转换为所需的时区。
发布于 2015-11-03 19:39:00
我最近也遇到了同样的问题。我的方法是在根目录中创建一个名为/time的文件夹,然后重新读取它并检查文件夹的创建日期。然后我可以建立我的ftp客户端和服务器之间的时间差。希望这能有所帮助。
顺便说一句,我正在使用https://github.com/ArxOne/FTP
// 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;
}https://stackoverflow.com/questions/3245381
复制相似问题