Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SMW中的可搜索日期/时间持续时间_Php_Date_Mediawiki_Semantic Mediawiki - Fatal编程技术网

Php SMW中的可搜索日期/时间持续时间

Php SMW中的可搜索日期/时间持续时间,php,date,mediawiki,semantic-mediawiki,Php,Date,Mediawiki,Semantic Mediawiki,我在一个私人环境中使用带有SMW扩展的Mediawiki来组织我的团队正在创建的虚拟世界。我有一些我喜欢的功能,我想知道是否有一个扩展,或者我自己的,可以让我做我想做的事情 基本上,用简单的英语。。。我想知道宇宙在某个特定的时间点(或持续时间)发生了什么 我想让用户能够给出一个日期(简单到一年,或根据需要精确到)或持续时间,并返回每个持续时间重叠的事件 比如说 事件1开始于约公元前3200年,结束于约公元前198年 事件2开始于公元前509年,结束于公元前405年 事件3开始于公元前419年1

我在一个私人环境中使用带有SMW扩展的Mediawiki来组织我的团队正在创建的虚拟世界。我有一些我喜欢的功能,我想知道是否有一个扩展,或者我自己的,可以让我做我想做的事情

基本上,用简单的英语。。。我想知道宇宙在某个特定的时间点(或持续时间)发生了什么

我想让用户能够给出一个日期(简单到一年,或根据需要精确到)或持续时间,并返回每个持续时间重叠的事件

比如说

  • 事件1开始于约公元前3200年,结束于约公元前198年
  • 事件2开始于公元前509年,结束于公元前405年
  • 事件3开始于公元前419年1月15日,结束于公元前419年1月17日
  • 事件4从公元前409年开始,到2021年2月14日结束
用户输入日期(本例中为部分日期)为公元前309年。 Wiki返回事件1和事件4,因为给定日期在这两个事件的持续时间内

这将允许我的创作者查询一个特定的日期(希望是一个持续时间),并发现已经发生的事件,这样他们就可以根据已经确定的事件调整他们的作品。这是一个简单的冲突检查器


如果没有可用的扩展来处理这个问题,我可以在任何地方研究类似的东西吗?我从未用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]]}}