咳,今天重新发现错误,Views模块的问题一堆堆。
前两天以为它“是以当天的00:00分为基准来进行调校的”,其实并非如此,当时因为是在北京时间早上快8点时做的调试时,它确实是以近似0:00为基准的。但这经过两天观察,它的基准值其实也在一直变化着。
晚上跑步时突然想到这一点,回来时重新进行测试,果不其然——它确实在变化。另外还有一点很让人奇怪的是总是错8小时。上到Drupal中国一查,竟然还有哥儿们中招,可惜他到最后也没有解决这个问题。但另外有人提到了时区,对,就是时区!
接着查下去后发现,Views根本没有理睬Drupal系统中时区设置,那个NOW函数的取值永远是以格林威治的标准时间计算的!真是MMD!
问题的解决比较简单,大致如下:
- 设:今天的所需要复习文章的提前天数为:X,目标时段的范围为Y
- 将X的值加上8小时,即:X = X + 60 X 60 X 8
- 那么,所做的筛选改为:
- 以NOW为基准
- Y的取值范围为:X + 0.5 > Y > X - 0.5
所有的记忆时间统一设在中午12点
后面是以前的内容,不再删除,以为警示。
上次重建长期记忆系统时,将Y的取值范围定在:X+0.5>Y>X-1。
结果这几天记忆量大的让人厌烦——重复的内容太多,起不到巩固的作用而消耗无谓的时间。这不是个好迹象,所以今天进行调整,将Y的取值范围改小。
刚才重新调整Views的时候发现,它竟然是以当天的00:00分为基准来进行调校的。也就是说,不论我处在今天的哪一个时段,如果我以NOW函数为基准,减上86400,得出的时间点是昨天的00:00,而不是当前时间前推24小时。
这是个有趣的发现,使程序更好控制,现将整个记忆系统的时段再次调整如下:
- 设:今天的所需要复习文章的提前天数为:X,目标时段的范围为Y
- 那么,所做的筛选改为:
- 以NOW为基准
- Y的取值范围为:X>Y>X-1
以上公式仅供参考,时间的算法是反的,界于2天前与3天前的正确说法是:2天前>Y>3天前,上次都没有写对。