· 7 years ago · Jun 07, 2018, 12:18 PM
1/*
2 * JavaScript Pretty Date
3 * Copyright (c) 2008 John Resig (jquery.com)
4 * Licensed under the MIT license.
5 */
6
7 // Ported to PHP >= 5.1 by Zach Leatherman (zachleat.com)
8 // Slight modification denoted below to handle months and years.
9 public static function getStringResolved($date, $compareTo = NULL) {
10 if(!is_null($compareTo)) {
11 $compareTo = new DateTime($compareTo);
12 }
13 return self::getString(new DateTime($date), $compareTo);
14 }
15
16 public static function getString(DateTime $date, DateTime $compareTo = NULL){
17 if(is_null($compareTo)) {
18 $compareTo = new DateTime('now');
19 }
20 $diff = $compareTo->format('U') - $date->format('U');
21 $dayDiff = floor($diff / 86400);
22
23 if(is_nan($dayDiff) || $dayDiff < 0) {
24 return '';
25 }
26
27 if($dayDiff == 0) {
28 if($diff < 60) {
29 return 'teraz';
30 } elseif($diff < 120) {
31 return 'pred 1 minútou';
32 } elseif($diff < 3600) {
33 return 'pred ' . floor($diff/60) . ' minútami';
34 } elseif($diff < 7200) {
35 return 'pred 1 hodinou';
36 } elseif($diff < 86400) {
37 return 'pred ' . floor($diff/3600) . ' hodinami';
38 }
39 } elseif($dayDiff == 1) {
40 return 'vÄera';
41 } elseif($dayDiff < 7) {
42 return 'pred ' . $dayDiff . ' dňami';
43 } elseif($dayDiff == 7) {
44 return 'pred týždňom';
45 } elseif($dayDiff < (7*6)) { // Modifications Start Here
46 // 6 weeks at most
47 return 'pred ' . ceil($dayDiff/7) . ' týždňami';
48 } elseif($dayDiff < 365) {
49 return 'pred ' . ceil($dayDiff/(365/12)) . ' mesiacmi';
50 } else {
51 $years = round($dayDiff/365);
52 return 'pred ' . $years . ' rok' . ($years != 1 ? 'mi' : 'om');
53 }
54 }