【问题标题】:Sorting Information in an array by weeks按周对数组中的信息进行排序
【发布时间】:2012-05-15 19:06:15
【问题描述】:

我有一个日期数组,比如

array
1 => string '2012-02-27' (length=10)
2 => string '2012-03-02' (length=10)
59 => string '2012-03-05' (length=10)

等等。这些日期代表人们申请某物的日子。比如2月27日3人申请,3月1日2人申请。

我想做的是创建一个表格,上面写着2012-02-262012-03-03 的那一周有 5 人提交了申请。左侧栏的标题为Weeks,右侧栏的标题为# of applications received

我已经按天设置了表格,但几周也会有所帮助。我看过一篇关于上市周的帖子,并尝试使用它,但它没有用。

更具体地说,我的问题是如何获取一系列日期并将它们按周分解并将这些信息放在表格中?

【问题讨论】:

  • a) 你需要发布你的代码(我看你是新手,所以你得到了一些婴儿保护)和 b) 请让你的具体问题更清楚,什么是路障?请阅读:What have you tried,然后通过编辑来改进您的问题。
  • 不完全是。键是人的 id。
  • 例如 Bob 是第一个在 27 日申请的人,那么 Sue 就是在 3 月 2 日申请的人。那么乔治将在 3 月 2 日申请 3 号

标签: php arrays datetime sorting


【解决方案1】:

您没有指定您使用的数据库引擎,但大多数都有一个日期格式字段“一年中的星期”,所以SELECT COUNT, YEAR(date), WEEKOFYEAR(date) FROM stuff GROUP BY YEAR(date), WEEKOFYEAR(date)

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekofyear

【讨论】:

    【解决方案2】:

    您可能希望在 php 中使用它,而不是在 DB 中。

    1) convert dates to epoch (seconds) with strtotime()
    2) sort array by (numeric now) date with asort()
    3) loop through the sorted now array from start date to end date and add the values.
    

    当然,使用数据库可以轻松得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多