【问题标题】:Why are this two operations returning the same?为什么这两个操作返回相同?
【发布时间】:2013-07-26 14:25:37
【问题描述】:

我试图比较创建日期和当前日期以根据结果进行一些操作,事实是,在我的本地开发过程中,一切都很好,一切都像一个魅力,但是当我将我的脚本上传到webhost,一切都向南走,下面的代码

echo $date_modified = date ("F d Y H:i:s.", filemtime($file)); //date of modification of the file

给我和

一样的结果
echo $current_time = date("F d Y H:i:s."); //the current time

¿ 这怎么可能?为什么?

编辑

关于这个主题的更多信息,当我尝试调试脚本时,我终于发现,显然,服务器正在积极修改 php 脚本正在创建的文本文件并将“null”放在文件上,¿for什么理由?我真的不确定,但这似乎是与托管有关的问题,所以我想我必须搜索一个新的主机,因为我真的需要创建文件才能缓存一些信息不会超载提供信息以填写文件的 Web 服务。

【问题讨论】:

  • Linux 两端,还是host/dev 环境之间的OS 变化?
  • Mac 开发,Linux 另一端。但正如我在编辑中解释的那样,托管网站的服务器似乎有问题。
  • “在文件上放置空值”是什么意思?
  • 好吧,每当脚本运行时,都会创建文件,但内容设置为字符串“null”。但是,当我在本地开发脚本时,这种情况从未发生过,当我发现对它进行更多阅读时,这似乎是与网络托管本身有关的问题,他们只是不喜欢你四处创建文本文件,显然.
  • 听起来文件创建正常,但您的代码中的某些内容会生成“null”,从而写入文件而不是正确的内容。可能与 MacOS 不区分大小写有关,而 Linux 在文件名方面区分大小写。

标签: php date hosting


【解决方案1】:

确保$file 实际上是一个文件,并且当您尝试打开它时,您使用的是正确的路径。

【讨论】:

  • 如果$file 不存在,filemtime 将返回 false。如果发生这种情况,$date_modified$current_time 将不会保存相同的值($date_modified 将包含“1969-12-31”)。
【解决方案2】:

filemtime($file) 返回文件的最后修改时间(不是“创建”,see docs),这可能是脚本上传到您的虚拟主机的时间。

【讨论】:

  • 检查文件是否存在的动作是否被认为是对文件的修改?
  • 没有。 "返回文件数据块被写入的时间,即文件内容发生变化的时间。" -php.net/filemtime 不过,正如我所说,上传文件(这与向服务器写入新文件相同)当然是。
【解决方案3】:

关于这个主题的更多信息,当我尝试调试脚本时,我终于发现我的脚本不是问题,显然,服务器正在积极修改 php 脚本正在创建和放置的文本文件'文件上的空',¿出于什么原因?我真的不确定,但这似乎是与托管有关的问题,所以我想我必须搜索一个新的主机,因为我真的需要创建文件才能缓存一些信息不会超载提供信息以填写文件的 Web 服务。

很抱歉浪费了您的时间:/,我真的很抱歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2023-03-22
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2015-07-08
    相关资源
    最近更新 更多