Как получить: настройка часового пояса FTP-сервера?
Я использую функцию FTP_RAWLIST PHP для получения списка файлов и связанных с ними последних изменений даты/времени. Для моих целей мне нужно знать часовой пояс (или смещение) последней измененной даты/времени. Только даты / время бесполезны для меня, поскольку мне нужно преобразовать их в UTC.
есть ли в любом случае, чтобы выяснить, что такое настройка часового пояса FTP-сервера?
3 ответов
в стандарте FTP нет способа определить часовой пояс удаленного сервера.
Если у вас есть разрешения на запись на FTP-сервер, я думаю, вы можете загрузить файл, а затем рассчитать разницу между временем файла, сообщенным FTP и локально.
попробуйте определить часовой пояс в начале вашего php-кода. Пример: меня("сет"); Для меня это решение работало, поскольку оно автоматически преобразовывало время сервера из другого часового пояса в нужный.
недавно у меня была такая же проблема. Мой подход состоял в том, чтобы создать папку в корне под названием /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;
}