小编Ryo*_*Ryo的帖子

奇怪的Datetime :: setDate()行为

我需要一些帮助来寻找服务器或php的任何可能的错误配置,因为我有一个DateTime的"setDate"方法的奇怪行为:

$datetime = new DateTime('2016-01-01 23:59:59');
$datetime->setDate(2016, 2, 28);
print_r($datetime);

/*
DateTime Object
(
    [date] => 2016-01-28 23:59:59
    [timezone_type] => 3
    [timezone] => Europe/Berlin
)
date should actually be february!
*/
Run Code Online (Sandbox Code Playgroud)

好吧,至少它是一致的,因为,当我将日期设定为3月(3)时,结果是2月(2).

$datetime = new DateTime('2016-01-01 23:59:59');
$datetime->setDate(2016, 3, 28);
print_r($datetime);

/*
DateTime Object
(
    [date] => 2016-02-28 23:59:59
    [timezone_type] => 3
    [timezone] => Europe/Berlin
)
date should actually be march!
*/
Run Code Online (Sandbox Code Playgroud)

在PHP中设置默认时区

// "Europe/Berlin"
echo date_default_timezone_get();
Run Code Online (Sandbox Code Playgroud)

服务器当前正在运行

php version 5.3.2 (unfortunately i cannot upgrade)
Run Code Online (Sandbox Code Playgroud)

服务器时间准确设置,时区也是欧洲/柏林.

有人可以帮助我/建议我能做什么或检查其他吗?

php datetime

6
推荐指数
1
解决办法
76
查看次数

chokidar:文件的 onchange 事件可能被触发为快速

我们正在 Ubuntu 服务器上使用带有 nodejs 的 chokidar 监视文件更改。它工作得很好,但有时我认为我们在更改时保存文件的方式有问题:在 chokidar 中触发了“onchange”事件,但是当我们在回调中读取文件时,它是空的或(很少)没有写完全。我们不知道这是由写入文件的文本编辑器、客户端计算机上的操作系统、服务器上的操作系统或文件系统 (ext4) 引起的问题,还是 chokidar 中的某种错误。

这个空文件问题现在几乎每次都会发生,因为在使用 sublime 3 的一台计算机(mac,最新的 osx 版本)上进行了文件更改。在 sublime 中,我们尝试了设置“atomic_save”(创建一个临时文件然后覆盖原始文件),但它没有解决我们的问题:

  1. atomic_save设置为“false”时,文件在 onchange 事件中似乎始终为空,并且
  2. 使用atomic_save “true”,它有时是空的,有时是部分写入的。

我们之前在使用 phpstorm 时遇到过这个问题,但是在切换到 “使用“安全写入”(首先将更改保存到临时文件)”之后——所以与 sublime 中的 atomic_save 设置相同,这也是我们在 sublime 中尝试 atomic_save 的原因——onchange完成写入后事件被正确触发。

所以我们的问题是,有没有办法在文件以某种方式完全写入时触发“onchange”(在 chokidar、OS、sublime 中)?或者我们是否必须在“onchange”事件中检查文件大小直到一段时间没有改变(不太好)?或者我们的问题可能是由于其他原因造成的?

我们将不胜感激任何提示!提前致谢!

file onchange node.js is-empty sublimetext3

4
推荐指数
1
解决办法
2117
查看次数

标签 统计

datetime ×1

file ×1

is-empty ×1

node.js ×1

onchange ×1

php ×1

sublimetext3 ×1