我们在sharepoint 2010列表中有一些计算字段。
计算如下:
=DATE(YEAR(Start),MONTH(Start),1)
这将返回月初。
和=DATE(YEAR(Start),MONTH(Start)+1,1)-1
将返回月末。
如果我们在sharepoint 2010中为设置为“关注网络设置”的用户设置了区域设置,则其功能类似于一个功能,并返回12/1/2011
和12/31/2011
。
但是,如果有人想要个性化他们的日历以自动调整他们的tmie区域,他们可以点击My Settings
然后点击My regional settings
并相应地更改他们的时区。
但是,当发生这种情况时,上面的日期计算会从结果中减去一天,并返回11/30/2011
表示开始,12/30/2011
表示结束。
除了强迫每个人使用相同的时区之外,还有其他解决方法吗?
答案 0 :(得分:0)
您不能只检查时区并根据代码中的swith调整计算吗?
答案 1 :(得分:0)
看起来答案是如何在SharePoint列表上计算日期和时间。使用=DATE
任何类型的计算时,您实际上都在设置日期,因此通过将日期设置为12/1/2011
,您实际上也将其设置为12/1/2011 12:00:00 AM
。而且,当区域时间对此进行调整时,时间迫使它们回到前一天。
这不是故意的。通过为实际结果增加一些时间可以克服一些问题:
=DATE(YEAR(Start + .5),MONTH(Start + .5),1)
=DATE(YEAR(Start - .5),MONTH(Start - .5)+1,1)-1
正如我们从上面的计算中可以看到的,.5
实际上是在初始计算中增加了几个小时,如果用户想要将他们的时区设置为更自定义的东西,这会给我们提供正确的设置。
但是,这并不适用于所有时区,因为国际时区可能会超过上面.5
的时差,并将其标记为将来的某一天或后一天。
但是,对我们来说,问题已得到解决,我们的用户可以再次在其区域设置中设置PST
,EST
,CST
,MST
等