Php SMW中的可搜索日期/时间持续时间
我在一个私人环境中使用带有SMW扩展的Mediawiki来组织我的团队正在创建的虚拟世界。我有一些我喜欢的功能,我想知道是否有一个扩展,或者我自己的,可以让我做我想做的事情 基本上,用简单的英语。。。我想知道宇宙在某个特定的时间点(或持续时间)发生了什么 我想让用户能够给出一个日期(简单到一年,或根据需要精确到)或持续时间,并返回每个持续时间重叠的事件 比如说Php SMW中的可搜索日期/时间持续时间,php,date,mediawiki,semantic-mediawiki,Php,Date,Mediawiki,Semantic Mediawiki,我在一个私人环境中使用带有SMW扩展的Mediawiki来组织我的团队正在创建的虚拟世界。我有一些我喜欢的功能,我想知道是否有一个扩展,或者我自己的,可以让我做我想做的事情 基本上,用简单的英语。。。我想知道宇宙在某个特定的时间点(或持续时间)发生了什么 我想让用户能够给出一个日期(简单到一年,或根据需要精确到)或持续时间,并返回每个持续时间重叠的事件 比如说 事件1开始于约公元前3200年,结束于约公元前198年 事件2开始于公元前509年,结束于公元前405年 事件3开始于公元前419年1
- 事件1开始于约公元前3200年,结束于约公元前198年
- 事件2开始于公元前509年,结束于公元前405年
- 事件3开始于公元前419年1月15日,结束于公元前419年1月17日
- 事件4从公元前409年开始,到2021年2月14日结束
如果没有可用的扩展来处理这个问题,我可以在任何地方研究类似的东西吗?我从未用PHP处理过日期。我是一名普通的商业编码员,我从未做过复杂的应用程序。SMW中没有内置的“持续时间”数据类型,因此最简单的方法可能是使用一个作为开始日期,一个作为结束日期(请注意,它必须是
BC
/AD
,而不是BCE
/CE
或类似的):
然后,您可以查询在某个日期之前有开始日期,在某个日期之后有结束日期的每个事件:
{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}}
{{#ask:[[事件开始于::公元前1000年]]}
请注意,
在SMW查询语法中实际上意味着“大于或等于”。这适用于BC和AD,或混合日期。例如,SMW能否比较公元前1000年和公元1989年1月1日?
{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}}