Skip to content

Commit f30048c

Browse files
Merge pull request #1 from karam-mustafa/main
wip
2 parents 3dbb45f + 6884284 commit f30048c

File tree

8 files changed

+136
-63
lines changed

8 files changed

+136
-63
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
},
2626
"autoload" : {
2727
"psr-4": {
28-
"SOS\\PhpPackageTemplate\\" : "src",
29-
"SOS\\PhpPackageTemplate\\Tests\\": "src/tests"
28+
"SOS\\ArabicDiffForHumans\\" : "src",
29+
"SOS\\ArabicDiffForHumans\\Tests\\": "src/tests"
3030
}
3131
},
3232
"scripts": {

src/Abstracts/AbstractToBuild.php

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace SOS\ArabicDiffForHumans\Classes;
4+
5+
class ArabicDiffForHumansAbstract
6+
{
7+
}
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
<?php
2+
3+
namespace SOS\ArabicDiffForHumans\Classes;
4+
5+
/**
6+
* Class ArabicDiffForHumans
7+
*
8+
* @author your name
9+
* @package SOS\ArabicDiffForHumans\Classes
10+
*/
11+
class ArabicDiffForHumans
12+
{
13+
public static function getFromDateString($dateString)
14+
{
15+
$timeStamp = strtotime($dateString);
16+
return self::get($timeStamp);
17+
}
18+
public static function get($timeStamp)
19+
{
20+
$diff = self::getDifference($timeStamp);
21+
$unit = self::unit($diff);
22+
$valueOfDifference = floor(self::DiffValue($diff,$unit));
23+
24+
$result = "";
25+
switch ($unit){
26+
case 1:
27+
$result = self::formatResult($valueOfDifference,"ثانية","ثانيتين","ثواني");
28+
break;
29+
case 2:
30+
$result = self::formatResult($valueOfDifference,"دقيقة","دقيقتين","دقائق");
31+
break;
32+
case 3:
33+
$result = self::formatResult($valueOfDifference,"ساعة","ساعتين","ساعات");
34+
break;
35+
case 4:
36+
$result = self::formatResult($valueOfDifference,"يوم","يومين","أيام");
37+
break;
38+
case 5:
39+
$result = self::formatResult($valueOfDifference,"شهر","شهرين","أشهر");
40+
break;
41+
case 6:
42+
$result = self::formatResult($valueOfDifference,"سنة","سنتين","سنين");
43+
break;
44+
45+
}
46+
return $result;
47+
}
48+
private static function DiffValue($diff,$unit)
49+
{
50+
$diffValue = 0;
51+
switch ($unit)
52+
{
53+
case 1:
54+
$diffValue = $diff;
55+
break;
56+
case 2:
57+
$diffValue = self::getMinutes($diff);
58+
break;
59+
case 3:
60+
$diffValue = self::getHours($diff);
61+
break;
62+
case 4:
63+
$diffValue = self::getDays($diff);
64+
break;
65+
case 5:
66+
$diffValue = self::getMonths($diff);
67+
break;
68+
case 6:
69+
$diffValue = self::getYears($diff);
70+
}
71+
return $diffValue;
72+
}
73+
private static function getDifference($timestamp)
74+
{
75+
return abs(time()-$timestamp);
76+
}
77+
78+
private static function unit($diff){
79+
if ($diff<60)
80+
return 1; // seconds
81+
else if ($diff<60*60)
82+
return 2; // minutes
83+
else if($diff<24*60*60)
84+
return 3; // hours
85+
else if($diff<24*60*60*30)
86+
return 4; //days
87+
else if($diff<24*60*60*365)
88+
return 5; // months
89+
else
90+
return 6; //years
91+
}
92+
93+
private static function getMinutes($diff) {
94+
return $diff/60;
95+
}
96+
private static function getHours($diff) {
97+
return $diff/(60*60);
98+
}
99+
private static function getDays($diff) {
100+
return $diff/(60*60*24);
101+
}
102+
private static function getMonths($diff) {
103+
return $diff/(60*60*24*30);
104+
}
105+
private static function getYears($diff) {
106+
return $diff/(365*24*60*60);
107+
}
108+
109+
private static function formatResult($valueOfDifference,$single,$double,$plural)
110+
{
111+
if($valueOfDifference==1)
112+
return "منذ ".$single;
113+
if($valueOfDifference==2)
114+
return " منذ ".$double;
115+
if($valueOfDifference<=10)
116+
return "منذ ".$valueOfDifference." ".$plural;
117+
return "منذ ".$valueOfDifference." ".$single;
118+
}
119+
}

src/Classes/ClassToBuild.php

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace SOS\ArabicDiffForHumans\Interfaces;
4+
5+
interface ArabicDiffForHumansInterface
6+
{
7+
}

src/Interfaces/ClassToBuildInterface.php

Lines changed: 0 additions & 7 deletions
This file was deleted.

tests/Feature/ExampleTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace SOS\PhpPackageTemplate\Tests\Feature;
3+
namespace SOS\ArabicDiffForHumans\Tests\Feature;
44

55
use PHPUnit\Framework\TestCase;
66

0 commit comments

Comments
 (0)