Advertisement
shapoval

First and last days for week, month, year

May 4th, 2016
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 14.91 KB | None | 0 0
  1. <?php
  2.  
  3. function getFirstWeekDayDatetime($datetime) {
  4.     return $datetime->modify('+ 1 day')->modify('last monday');
  5. }
  6.  
  7. function getLastWeekDayDatetime($datetime) {
  8.     return $datetime->modify('- 1 day')->modify('next sunday');
  9. }
  10.  
  11. function getFirstMonthDayDatetime($datetime) {
  12.     return $datetime->modify('first day of this month');
  13. }
  14.  
  15. function getLastMonthDayDatetime($datetime) {
  16.     return $datetime->modify('last day of this month');
  17. }
  18.  
  19. function getFirstYearDayDatetime($datetime) {
  20.     return $datetime->modify('first day of January');
  21. }
  22.  
  23. function getLastYearDayDatetime($datetime) {
  24.     return $datetime->modify('last day of December');
  25. }
  26.  
  27.  
  28. $format = 'Y-m-d';
  29.  
  30.  
  31.  
  32. echo "<strong>First day of the week</strong><br>";
  33. echo "2016-05-13, Fri -> " . getFirstWeekDayDatetime(new Datetime('2016-05-13'))->format($format) . "<br>";
  34. echo "2016-05-14, Sat -> " . getFirstWeekDayDatetime(new Datetime('2016-05-14'))->format($format) . "<br>";
  35. echo "2016-05-15, Sun -> " . getFirstWeekDayDatetime(new Datetime('2016-05-15'))->format($format) . "<br>";
  36. echo "<br>";
  37. echo "2016-05-16, Mon -> " . getFirstWeekDayDatetime(new Datetime('2016-05-16'))->format($format) . "<br>";
  38. echo "2016-05-17, Tue -> " . getFirstWeekDayDatetime(new Datetime('2016-05-17'))->format($format) . "<br>";
  39. echo "2016-05-18, Wed -> " . getFirstWeekDayDatetime(new Datetime('2016-05-18'))->format($format) . "<br>";
  40. echo "2016-05-19, Thu -> " . getFirstWeekDayDatetime(new Datetime('2016-05-19'))->format($format) . "<br>";
  41.  
  42. echo "<br><br>";
  43. echo "<strong>Last day of the week</strong><br>";
  44. echo "2016-05-13, Fri -> " . getLastWeekDayDatetime(new Datetime('2016-05-13'))->format($format) . "<br>";
  45. echo "2016-05-14, Sat -> " . getLastWeekDayDatetime(new Datetime('2016-05-14'))->format($format) . "<br>";
  46. echo "2016-05-15, Sun -> " . getLastWeekDayDatetime(new Datetime('2016-05-15'))->format($format) . "<br>";
  47. echo "<br>";
  48. echo "2016-05-16, Mon -> " . getLastWeekDayDatetime(new Datetime('2016-05-16'))->format($format) . "<br>";
  49. echo "2016-05-17, Tue -> " . getLastWeekDayDatetime(new Datetime('2016-05-17'))->format($format) . "<br>";
  50. echo "2016-05-18, Wed -> " . getLastWeekDayDatetime(new Datetime('2016-05-18'))->format($format) . "<br>";
  51. echo "2016-05-19, Thu -> " . getLastWeekDayDatetime(new Datetime('2016-05-19'))->format($format) . "<br>";
  52.  
  53.  
  54.  
  55. echo "<br><br><br>";
  56. echo "<strong>First day of the month</strong><br>";
  57.  
  58. echo "2016-03-30 -> " . getFirstMonthDayDatetime(new Datetime('2016-03-30'))->format($format) . "<br>";
  59. echo "2016-03-31 -> " . getFirstMonthDayDatetime(new Datetime('2016-03-31'))->format($format) . "<br>";
  60. echo "<br>";
  61. echo "2016-04-01 -> " . getFirstMonthDayDatetime(new Datetime('2016-04-01'))->format($format) . "<br>";
  62. echo "2016-04-02 -> " . getFirstMonthDayDatetime(new Datetime('2016-04-02'))->format($format) . "<br>";
  63. echo "2016-04-15 -> " . getFirstMonthDayDatetime(new Datetime('2016-04-15'))->format($format) . "<br>";
  64. echo "2016-04-29 -> " . getFirstMonthDayDatetime(new Datetime('2016-04-29'))->format($format) . "<br>";
  65. echo "2016-04-30 -> " . getFirstMonthDayDatetime(new Datetime('2016-04-30'))->format($format) . "<br>";
  66. echo "<br>";
  67. echo "2016-05-01 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-01'))->format($format) . "<br>";
  68. echo "2016-05-02 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-02'))->format($format) . "<br>";
  69. echo "2016-05-15 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-15'))->format($format) . "<br>";
  70. echo "2016-05-29 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-29'))->format($format) . "<br>";
  71. echo "2016-05-30 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-30'))->format($format) . "<br>";
  72. echo "2016-05-31 -> " . getFirstMonthDayDatetime(new Datetime('2016-05-31'))->format($format) . "<br>";
  73.  
  74. echo "<br><br>";
  75. echo "<strong>Last day of the month</strong><br>";
  76.  
  77. echo "2016-03-30 -> " . getLastMonthDayDatetime(new Datetime('2016-03-30'))->format($format) . "<br>";
  78. echo "2016-03-31 -> " . getLastMonthDayDatetime(new Datetime('2016-03-31'))->format($format) . "<br>";
  79. echo "<br>";
  80. echo "2016-04-01 -> " . getLastMonthDayDatetime(new Datetime('2016-04-01'))->format($format) . "<br>";
  81. echo "2016-04-02 -> " . getLastMonthDayDatetime(new Datetime('2016-04-02'))->format($format) . "<br>";
  82. echo "2016-04-15 -> " . getLastMonthDayDatetime(new Datetime('2016-04-15'))->format($format) . "<br>";
  83. echo "2016-04-29 -> " . getLastMonthDayDatetime(new Datetime('2016-04-29'))->format($format) . "<br>";
  84. echo "2016-04-30 -> " . getLastMonthDayDatetime(new Datetime('2016-04-30'))->format($format) . "<br>";
  85. echo "<br>";
  86. echo "2016-05-01 -> " . getLastMonthDayDatetime(new Datetime('2016-05-01'))->format($format) . "<br>";
  87. echo "2016-05-02 -> " . getLastMonthDayDatetime(new Datetime('2016-05-02'))->format($format) . "<br>";
  88. echo "2016-05-15 -> " . getLastMonthDayDatetime(new Datetime('2016-05-15'))->format($format) . "<br>";
  89. echo "2016-05-29 -> " . getLastMonthDayDatetime(new Datetime('2016-05-29'))->format($format) . "<br>";
  90. echo "2016-05-30 -> " . getLastMonthDayDatetime(new Datetime('2016-05-30'))->format($format) . "<br>";
  91. echo "2016-05-31 -> " . getLastMonthDayDatetime(new Datetime('2016-05-31'))->format($format) . "<br>";
  92.  
  93.  
  94.  
  95. echo "<br><br><br>";
  96. echo "<strong>First day of the year</strong><br>";
  97.  
  98. echo "2015-01-01 -> " . getFirstYearDayDatetime(new Datetime('2015-01-01'))->format($format) . "<br>";
  99. echo "2015-01-31 -> " . getFirstYearDayDatetime(new Datetime('2015-01-31'))->format($format) . "<br>";
  100. echo "2015-12-30 -> " . getFirstYearDayDatetime(new Datetime('2015-12-30'))->format($format) . "<br>";
  101. echo "2015-12-31 -> " . getFirstYearDayDatetime(new Datetime('2015-12-31'))->format($format) . "<br>";
  102. echo "<br>";
  103. echo "2016-01-01 -> " . getFirstYearDayDatetime(new Datetime('2016-01-01'))->format($format) . "<br>";
  104. echo "2016-01-31 -> " . getFirstYearDayDatetime(new Datetime('2016-01-31'))->format($format) . "<br>";
  105. echo "2016-12-30 -> " . getFirstYearDayDatetime(new Datetime('2016-12-30'))->format($format) . "<br>";
  106. echo "2016-12-31 -> " . getFirstYearDayDatetime(new Datetime('2016-12-31'))->format($format) . "<br>";
  107.  
  108. echo "<br><br>";
  109. echo "<strong>Last day of the year</strong><br>";
  110.  
  111. echo "2015-01-01 -> " . getLastYearDayDatetime(new Datetime('2015-01-01'))->format($format) . "<br>";
  112. echo "2015-01-31 -> " . getLastYearDayDatetime(new Datetime('2015-01-31'))->format($format) . "<br>";
  113. echo "2015-12-30 -> " . getLastYearDayDatetime(new Datetime('2015-12-30'))->format($format) . "<br>";
  114. echo "2015-12-31 -> " . getLastYearDayDatetime(new Datetime('2015-12-31'))->format($format) . "<br>";
  115. echo "<br>";
  116. echo "2016-01-01 -> " . getLastYearDayDatetime(new Datetime('2016-01-01'))->format($format) . "<br>";
  117. echo "2016-01-31 -> " . getLastYearDayDatetime(new Datetime('2016-01-31'))->format($format) . "<br>";
  118. echo "2016-12-30 -> " . getLastYearDayDatetime(new Datetime('2016-12-30'))->format($format) . "<br>";
  119. echo "2016-12-31 -> " . getLastYearDayDatetime(new Datetime('2016-12-31'))->format($format) . "<br>";
  120.  
  121.  
  122.  
  123. echo "<br><br><br>";
  124. echo "<strong>First day of the first week of the month</strong><br>";
  125. echo "2016-03-30 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-03-30')))->format($format) . "<br>";
  126. echo "2016-03-31 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-03-31')))->format($format) . "<br>";
  127. echo "<br>";
  128. echo "2016-04-01 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-04-01')))->format($format) . "<br>";
  129. echo "2016-04-02 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-04-02')))->format($format) . "<br>";
  130. echo "2016-04-15 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-04-15')))->format($format) . "<br>";
  131. echo "2016-04-29 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-04-29')))->format($format) . "<br>";
  132. echo "2016-04-30 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-04-30')))->format($format) . "<br>";
  133. echo "<br>";
  134. echo "2016-05-01 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-01')))->format($format) . "<br>";
  135. echo "2016-05-02 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-02')))->format($format) . "<br>";
  136. echo "2016-05-15 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-15')))->format($format) . "<br>";
  137. echo "2016-05-29 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-29')))->format($format) . "<br>";
  138. echo "2016-05-30 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-30')))->format($format) . "<br>";
  139. echo "2016-05-31 -> " . getFirstWeekDayDatetime(getFirstMonthDayDatetime(new Datetime('2016-05-31')))->format($format) . "<br>";
  140.  
  141. echo "<br><br>";
  142. echo "<strong>Last day of the last week of the month</strong><br>";
  143. echo "2016-03-30 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-03-30')))->format($format) . "<br>";
  144. echo "2016-03-31 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-03-31')))->format($format) . "<br>";
  145. echo "<br>";
  146. echo "2016-04-01 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-04-01')))->format($format) . "<br>";
  147. echo "2016-04-02 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-04-02')))->format($format) . "<br>";
  148. echo "2016-04-15 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-04-15')))->format($format) . "<br>";
  149. echo "2016-04-29 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-04-29')))->format($format) . "<br>";
  150. echo "2016-04-30 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-04-30')))->format($format) . "<br>";
  151. echo "<br>";
  152. echo "2016-05-01 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-01')))->format($format) . "<br>";
  153. echo "2016-05-02 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-02')))->format($format) . "<br>";
  154. echo "2016-05-15 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-15')))->format($format) . "<br>";
  155. echo "2016-05-29 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-29')))->format($format) . "<br>";
  156. echo "2016-05-30 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-30')))->format($format) . "<br>";
  157. echo "2016-05-31 -> " . getLastWeekDayDatetime(getLastMonthDayDatetime(new Datetime('2016-05-31')))->format($format) . "<br>";
  158.  
  159.  
  160.  
  161. echo "<br><br><br>";
  162. echo "<strong>First day of the first week of the year</strong><br>";
  163. echo "2015-01-01 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-01')))->format($format) . "<br>";
  164. echo "2015-01-31 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-31')))->format($format) . "<br>";
  165. echo "2015-12-30 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-30')))->format($format) . "<br>";
  166. echo "2015-12-31 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-31')))->format($format) . "<br>";
  167. echo "<br>";
  168. echo "2016-01-01 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-01')))->format($format) . "<br>";
  169. echo "2016-01-31 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-31')))->format($format) . "<br>";
  170. echo "2016-12-30 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-30')))->format($format) . "<br>";
  171. echo "2016-12-31 -> " . getFirstWeekDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-31')))->format($format) . "<br>";
  172.  
  173. echo "<br><br>";
  174. echo "<strong>Last day of the last week of the year</strong><br>";
  175. echo "2015-01-01 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2015-01-01')))->format($format) . "<br>";
  176. echo "2015-01-31 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2015-01-31')))->format($format) . "<br>";
  177. echo "2015-12-30 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2015-12-30')))->format($format) . "<br>";
  178. echo "2015-12-31 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2015-12-31')))->format($format) . "<br>";
  179. echo "<br>";
  180. echo "2016-01-01 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2016-01-01')))->format($format) . "<br>";
  181. echo "2016-01-31 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2016-01-31')))->format($format) . "<br>";
  182. echo "2016-12-30 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2016-12-30')))->format($format) . "<br>";
  183. echo "2016-12-31 -> " . getLastWeekDayDatetime(getLastYearDayDatetime(new Datetime('2016-12-31')))->format($format) . "<br>";
  184.  
  185.  
  186. echo "<br><br><br>";
  187. echo "<strong>First day of the first month of the year</strong><br>";
  188. echo "2015-01-01 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-01')))->format($format) . "<br>";
  189. echo "2015-01-31 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-31')))->format($format) . "<br>";
  190. echo "2015-12-30 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-30')))->format($format) . "<br>";
  191. echo "2015-12-31 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-31')))->format($format) . "<br>";
  192. echo "<br>";
  193. echo "2016-01-01 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-01')))->format($format) . "<br>";
  194. echo "2016-01-31 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-31')))->format($format) . "<br>";
  195. echo "2016-12-30 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-30')))->format($format) . "<br>";
  196. echo "2016-12-31 -> " . getFirstMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-31')))->format($format) . "<br>";
  197.  
  198. echo "<br><br>";
  199. echo "<strong>Last day of the last month of the year</strong><br>";
  200. echo "2015-01-01 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-01')))->format($format) . "<br>";
  201. echo "2015-01-31 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-01-31')))->format($format) . "<br>";
  202. echo "2015-12-30 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-30')))->format($format) . "<br>";
  203. echo "2015-12-31 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2015-12-31')))->format($format) . "<br>";
  204. echo "<br>";
  205. echo "2016-01-01 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-01')))->format($format) . "<br>";
  206. echo "2016-01-31 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-01-31')))->format($format) . "<br>";
  207. echo "2016-12-30 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-30')))->format($format) . "<br>";
  208. echo "2016-12-31 -> " . getLastMonthDayDatetime(getFirstYearDayDatetime(new Datetime('2016-12-31')))->format($format) . "<br>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement