使用php我想减去/减去两次;每次在一个单独的文档中,然后让php在另一个单个文本文档中或在没有HTML标记的html文档中写入结果(减去两次后的结果),只写文本。减去两次将确定某个玩家玩这个剧本将用于的游戏的时间。另外,当我声明脚本必须减去两次时,实际上对于一个玩家来说,因此总体而言应减去两倍以上;取决于实际玩游戏的人数。
如果您查看下面的内容,这是一个文本文件,其中包含玩家的用户名以及玩家的当地时间,其后是在这种情况下无关的其他数字:
文本文件名为“begin.txt”:
“AULLAH1”“01/07/2010 15:28”“55621454”“123456”“123456.00”
“USERNAME”“7/3/2010 6:21 PM”“55621454”“123456”“123456.00”
“AULLAH1”“07/07/2010 15:05”“55621454”“189450”“123456.00”
“SUPREMEGAMER”“7/8/2010 6:42 PM”“55621454”“123456”“123456.00”
有两个“AULLAH1”用户名条目,因为该玩家已经玩过两次游戏。第一行的下一个条目是“01/07/2010 15:28”,这是“AULLAH1”人的日期和当前时间。日期和时间之后的其他数据无关紧要,因此可以忽略它们。
在另一个文本文档中,标题为“end.txt”的是以下数据,其格式与上一个文本文件相同:
“AULLAH1”“01/07/2010 15:54”“55621454”“123456”“123456.00”
“USERNAME”“7/3/2010 6:49 PM”“55621454”“123456”“123456.00”
“AULLAH1”“07/07/2010 15:32”“55621454”“189450”“123456.00”
这个文本文件的区别在于没有标题为“SUPREMEGAMER”的玩家,因为该玩家没有设法完成游戏。此外,设法完成游戏的用户的时间也不同。玩家“AULLAH1”也会被列出两次,因为该玩家已经两次完成此游戏。
我希望php脚本在end.txt文件中搜索用户名“AULLAH1”的最后一个条目并再次获取整行,从begin.txt搜索“AULLAH1”的最后一个条目然后减去时间。一旦它被减去,我想要用户名和时间写在另一个文本文档中或没有HTML标签的html文档中,只有文本(如前所述)。因此,这只会显示用户“AULLAH1”的播放时间,因此,我希望在end.txt文档中为每个用户名完成此过程。
感谢所有的帮助,我期待着您的回复;谢谢。 :)如果我没有清楚地解释任何内容和/或您希望我更详细地解释,请回复。 :)
答案 0 :(得分:1)
我不打算在这里搜索文本文件。让我们说最终你会得到开始和结束时间。获得两者之间的差异非常简单。
(值得注意的是,我认为你的时间已经逆转。“结束”文件中的时间总是低于“开始”文件中的时间,这可能不对。此外,您似乎正在存储DD / MM / YYYY格式的日期,我的示例可能无法正确解析,因为它可能在13日之前的任何一天都不明确。您可能希望以YYYY-MM-DD格式存储它们,这是完全明确的。)
这是方法1,使用普通的旧unix时间戳。
// First we have our times in a human readable format.
// Let's make them into unix timestamps
$start_time = strtotime('01/07/2010 15:28');
$end_time = strtotime('01/07/2010 15:54');
$difference_in_seconds = $end_time - $start_time;
// If you need the difference in minutes or hours, you'll need to
// do the math yourself.
echo "That turn took {$difference_in_seconds} seconds to complete.";
这是方法2,使用PHP的新DateTime和DateInterval类。这只适用于PHP 5.3或更高版本。
// We have our times in human readable format.
// Let's make them into DateTimes
$start_time = new DateTime('01/07/2010 15:28');
$end_time = new DateTime('01/07/2010 15:54');
$interval = $end_time->diff($start_time, true);
echo "That turn took " . $interval->format('%h hours, %i minutes and %s seconds.');