PHP获取上周一有个坑,如果今天是周一,获取的是上周一。如果今天是周二到周日,获取的是本周一。

根据传递的页码数和每页显示多少条,获取对应的数据:

  1.      if ($data['type'] == 'day') {
  2. $unit = 'day';
  3. } else if ($data['type'] == 'week') {
  4. $unit = 'monday';
  5. } else if ($data['type'] == 'month') {
  6. $unit = 'month';
  7. }
  8.  
  9. $time = time();
  10. $today = date("Y-m-d", $time);
  11. $end_offset = ($data['page'] - ) * $data['size'] + ;
  12. $start_offset = $end_offset + $data['size'] - ;
  13.  
  14. $start_timestamp = strtotime("{$today} -{$start_offset} $unit");
  15. $end_timestamp = strtotime("{$today} -{$end_offset} $unit");
  16. if ($data['type'] == 'week') {
  17. $end_timestamp += * - ;
  18. if (date("w", $time) != ) {
  19. $start_timestamp -= * ;
  20. $end_timestamp -= * ;
  21. }
  22. } else if ($data['type'] == 'month') {
  23. $start_timestamp = strtotime(date("Y-m-01 00:00:00", $start_timestamp));
  24. $end_timestamp = strtotime(date("Y-m-t 23:59:59", $end_timestamp));
  25. }
  1.      $flag = true;
  2. $stamp = strtotime(date("Y-m-d 00:00:00", $end_timestamp));
  3. while ($flag) {
  4. if (isset($array_map[$stamp]) && !empty($array_map[$stamp])) {
  5. $result[] = $array_map[$stamp];
  6. } else {
  7. $default['stamps'] = $stamp;
  8. $default['date'] = date("Ymd", $stamp);
  9. $result[] = $default;
  10. }
  11.  
  12. if ($data['type'] == 'day') {
  13. $stamp -= ;
  14. } else if ($data['type'] == 'week') {
  15. $stamp -= * ;
  16. } else if ($data['type'] == 'month') {
  17. //$stamp对应的月份的1号,往前1天就是上个月的最后一天
  18. $date = date("Y-m-01", $stamp);
  19. $stamp = strtotime("{$date} -1 day");
  20. }
  21.  
  22. if ($stamp < $start_timestamp) {
  23. $flag = false;
  24. }
  25. }

PHP获取上周一和上个月的更多相关文章

  1. (转)Oracle 获取上周一到周末日期的查询sql语句

    -- Oracle 取上周一到周末的sql -- 这样取的是 在一周内第几天,是以周日为开始的 select to_char(to_date('20130906','yyyymmdd'),'d') f ...

  2. PHP 获取当前日期的上个月的日期

    获取当前日期的上个月的日期 <?php /** *参考有: *http://www.oschina.net/code/snippet_96541_4015 *http://stackoverfl ...

  3. Mysql 获取当月和上个月第一天和最后一天的SQL

    Mysql 获取当月和上个月第一天和最后一天的SQL #获取当前日期select curdate(); #获取当月最后一天select last_day(curdate()); #获取本月的第一天se ...

  4. Mysql 获取当月和上个月第一天和最后一天的解决方案

    #获取当前日期select curdate(); #获取当月最后一天select last_day(curdate()): #获取本月的第一天select date_add(curdate(),int ...

  5. JS获取今天和上个月的今天

    function getLastMonth(){ var now=new Date(); var year = now.getFullYear();//getYear()+1900=getFullYe ...

  6. js获取昨天/上周/上个月开始和结束的时间戳,可以设置时分秒 js obtain start and end timestamp of yesterday/last week/last month, with set of hour/minute/second

    //obtain timestamp of last week var now=new Date() var nowDayOfWeek = now.getDay(); //今天本周的第几天 var n ...

  7. SQL如何通过当前日期获取上周一日期【转】

    --当前时间 select getdate() --当前时间周的起始日期(以周一为例) ,) --上周起始: ,,)) --上上周起始: ,,)) --上上上周起始:s elect ,,))

  8. Java各种日期格式的获取和设置指定日期

    因为近期在做一个项目,发现项目中日期设置的bug,于是查阅了多方资料后.最终攻克了,为此写篇总结.方便日后的查阅. 多的不说了.直接上代码 package com.example.testdate; ...

  9. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

随机推荐

  1. linux-centos7.6设置固定IP网络方法

    两种方法设置固定IP 本文分别用了虚拟机网络模式桥接模式和Net模式,至于两者直接的区别可查看其他文档. 一.安装时设置固定IP地址 1.在系统设置界面,点击“网络和主机名”选项,可以看到默认是未连接 ...

  2. 第八届蓝桥杯C/C++程序设计本科B组决赛 ——瓷砖样式(填空题)【DP?我的暴力排列搜索】

    标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...

  3. EntityFramework 事物引发的问题

    前记 还是最近做的日志模块,今天做最后的入库工作.在测试入库日志记录时,总是出现怪异的问题. 开启服务开始接收 Kafka 的消息,第一条数据没有问题,后面的都如不了库.很是懵~~~ 调试了很久定位在 ...

  4. certbot更新错误

    自动更新老是提示这个错误. root@vultr:~/certbot# ./certbot-auto Upgrading certbot-auto 0.29.1 to 0.34.2... Couldn ...

  5. Selenium(十五)cookie

    有时候我们需要验证浏览器中是否存在某个 cookie,因为基于真实的 cookie 的测试是无法通过集成测试完成的.WebDriver 提供了操作 Cookie 的相关方法可以读取.添加和删除 coo ...

  6. Unity Platform Differernces

    https://docs.unity3d.com/560/Documentation/Manual/SL-PlatformDifferences.html

  7. Vue中img的src属性绑定

    正确:<img :src=" 'files/'+value.src "> 或 <img :src="value.src">错误:< ...

  8. [TJOI2015]弦论(第k小子串)

    题意: 对于一个给定的长度为n的字符串,求出它的第k小子串. 有参数t,t为0则表示不同位置的相同子串算作一个,t为1则表示不同位置的相同子串算作多个. 题解: 首先,因为t的原因,后缀数组较难实现, ...

  9. bzoj 3721: PA2014 Final Bazarek 贪心

    如果没有限制,直接取前 $k$ 大即可. 有限制,则只有几种可能:奇换偶,偶换奇. 维护奇数偶数的前缀最小值和后缀最大值即可. code: #include <bits/stdc++.h> ...

  10. 【原创】go语言学习(十)Map类型

    目录 声明和初始化 基本操作 map排序 map类型的切⽚片 课后作业 声明和初始化 1.map类型是⼀一个key-value的数据结构. //var a map[key的类型]value类型 var ...