如何让 WSL 认为它是过去的事情?

如何让 WSL 认为它是过去的事情?

我正在通过 Windows Subsytem For Linux 在 Windows 10 笔记本电脑上开发基于 PHP/Apache/MySQL 的代码。

我正在编写一些与时间相关的代码。它混合了 PHP 日期命令和 MySQL“NOW()”调用。我需要能够随时处理它,而不仅仅是在数据库记录中给出的日期内。

我可以设置我的 Windows 系统时钟并阻止它更新,但这样一来,使用互联网就几乎变得不可能了,任何 SSH 连接也是如此,因为时钟不会同步,所以安全连接将不起作用。

我需要时间旅行。

在不弄乱我的所有数据来更改数千条记录的结束日期的情况下,有人知道一种简单/常见的方法让我在 Windows 10 上通过 WSL 运行 PHP 和 MySQL,认为日期不是实际日期吗?

答案1

因为 WSL 不是虚拟机,所以它总是与你的底层系统时间绑定。如果按需修改系统时间太麻烦,据我所知你只有两个选择。

  1. 将你正在测试的运行代码移到实际的虚拟机中修改系统时间。

  2. 使用某种允许模拟日期相关函数调用的测试框架。不过,如何通过 PHP 实现这一点可能更适合在 stackoverflow.com 上提问。

相关内容