相关疑难解决方法(0)

检查集合中的连续日期并返回范围

我有日期Ymd格式的数组,可以是相隔一天的十个设定日期的任意组合.

这是全套:

2011-01-01,2011-01-02,2011-01-03,2011-01-04,2011-01-05,2011-01-06,2011-01-07,2011-01-08,2011- 01-09,2011-01-10

从该集创建的数组可以是日期的任意组合 - 所有数组,其中一个,一些连续,全部连续等.

我现在把它们打印得很漂亮.例如,这是一个可能的结果:

2011-01-02

2011-01-03

2011-01-04

2011-01-08

(实际打印的内容更像是"1月2日星期五......",但我们会坚持使用简单的日期字符串)

我想压缩它,以便如果连续三天或更多天,那些就成了一个范围,例如上面的例子会变成:

2011-01-02至2011-01-04

2011-01-08

最终会成为:

1月2日星期日 - 1月4日星期二

1月8日星期六

有没有办法循环并检查时差,创建范围的开始时间和结束时间,然后收集落后者?

php date

6
推荐指数
1
解决办法
4721
查看次数

缩短连续数字之间带连字符的数字列表

是否有一种简单的方法可以获取1到15范围内的数字列表.并用一个短划线代替连续数字.

例如,如果您有以下数字:

1 2 3 5 6 7 10 12

它会输出

1 - 3, 5 - 7, 10, 12

php arrays algorithm

5
推荐指数
2
解决办法
1065
查看次数

根据描述使用PHP需要输出数组

我把这个数组作为输入:

 $input=array('01-08-2018','02-08-2018','03-08-2018','05-08-2018','06-08-2018','08-08-2018','10-08-2018','11-08-2018','14-08-2018','01-09-2018','02-09-2018','10-09-2018');
Run Code Online (Sandbox Code Playgroud)

我需要预期数组:(如果连续日期中断,则需要单独的数组.)

$output=array(
              array('01-08-2018','02-08-2018','03-08-2018'),
              array('05-08-2018','06-08-2018'),
              array('08-08-2018'),
              array('10-08-2018','11-08-2018'),
              array('14-08-2018'),
              array('01-09-2018','02-09-2018'),
              array('10-09-2018')
            )
Run Code Online (Sandbox Code Playgroud)

注意:它应该适用于31-8-2018,1-9-2018这样的日期,它应该在同一个数组中.

php

1
推荐指数
1
解决办法
65
查看次数

标签 统计

php ×3

algorithm ×1

arrays ×1

date ×1