Skip to content

Commit 10b170d

Browse files
authored
Merge pull request #9 from AntonLazarev/leading_zero
Added leading zero for "9" minutes and seconds
2 parents 39a5cb1 + b2b284c commit 10b170d

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/Duration.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public function parse($duration)
9494
if (preg_match($this->daysRegex, $duration, $matches)) {
9595
$this->days = (int) $matches[1];
9696
}
97-
97+
9898
if (preg_match($this->hoursRegex, $duration, $matches)) {
9999
$this->hours = (int) $matches[1];
100100
}
@@ -163,15 +163,15 @@ public function toMinutes($duration = null, $roundToInteger = false)
163163
*/
164164
public function formatted($duration = null)
165165
{
166-
166+
167167
if (! is_null($duration)) {
168168
$this->parse($duration);
169169
}
170170

171171
$hours = $this->hours + ($this->days * $this->hoursPerDay);
172172

173173
if ($this->seconds > 0) {
174-
if ($this->seconds < 9 && ($this->minutes > 0 || $hours > 0)) {
174+
if ($this->seconds <= 9 && ($this->minutes > 0 || $hours > 0)) {
175175
$this->output .= '0' . $this->seconds;
176176
} else {
177177
$this->output .= $this->seconds;
@@ -183,7 +183,7 @@ public function formatted($duration = null)
183183
}
184184

185185
if ($this->minutes > 0) {
186-
if ($this->minutes < 9 && $hours > 0) {
186+
if ($this->minutes <= 9 && $hours > 0) {
187187
$this->output = '0' . $this->minutes . ':' . $this->output;
188188
} else {
189189
$this->output = $this->minutes . ':' . $this->output;

test/DurationTest.php

+12
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,10 @@ public function testGettingValueFromDaySuffixes($intVal, $dayStr)
104104
public function testConvertingSecondsToFormattedString()
105105
{
106106
$this->assertEquals('4', $this->d->formatted(4));
107+
$this->assertEquals('9', $this->d->formatted(9));
107108
$this->assertEquals('42', $this->d->formatted(42));
108109
$this->assertEquals('1:02', $this->d->formatted(62));
110+
$this->assertEquals('1:09', $this->d->formatted(69));
109111
$this->assertEquals('1:42', $this->d->formatted(102));
110112
$this->assertEquals('10:47', $this->d->formatted(647));
111113
$this->assertEquals('1:00:00', $this->d->formatted(3600));
@@ -114,13 +116,16 @@ public function testConvertingSecondsToFormattedString()
114116
$this->assertEquals('1:01:00', $this->d->formatted(3660));
115117
$this->assertEquals('1:01:14', $this->d->formatted(3674));
116118
$this->assertEquals('1:04:25', $this->d->formatted(3865));
119+
$this->assertEquals('1:09:09', $this->d->formatted(4149));
117120
}
118121

119122
public function testConvertingFormattedStringsToSeconds()
120123
{
121124
$this->assertEquals(4, $this->d->toSeconds('4'));
125+
$this->assertEquals(9, $this->d->toSeconds('9'));
122126
$this->assertEquals(42, $this->d->toSeconds('42'));
123127
$this->assertEquals(62, $this->d->toSeconds('1:02'));
128+
$this->assertEquals(69, $this->d->toSeconds('1:09'));
124129
$this->assertEquals(102, $this->d->toSeconds('1:42'));
125130
$this->assertEquals(647, $this->d->toSeconds('10:47'));
126131
$this->assertEquals(3600, $this->d->toSeconds('1:00:00'));
@@ -129,13 +134,16 @@ public function testConvertingFormattedStringsToSeconds()
129134
$this->assertEquals(3660, $this->d->toSeconds('1:01:00'));
130135
$this->assertEquals(3674, $this->d->toSeconds('1:01:14'));
131136
$this->assertEquals(3865, $this->d->toSeconds('1:04:25'));
137+
$this->assertEquals(4149, $this->d->toSeconds('1:09:09'));
132138
}
133139

134140
public function testConvertingFormattedStringsToMinutes()
135141
{
136142
$this->assertEquals(4/60, $this->d->toMinutes('4'));
143+
$this->assertEquals(9/60, $this->d->toMinutes('9'));
137144
$this->assertEquals(42/60, $this->d->toMinutes('42'));
138145
$this->assertEquals(62/60, $this->d->toMinutes('1:02'));
146+
$this->assertEquals(69/60, $this->d->toMinutes('1:09'));
139147
$this->assertEquals(102/60, $this->d->toMinutes('1:42'));
140148
$this->assertEquals(647/60, $this->d->toMinutes('10:47'));
141149
$this->assertEquals(3600/60, $this->d->toMinutes('1:00:00'));
@@ -144,10 +152,13 @@ public function testConvertingFormattedStringsToMinutes()
144152
$this->assertEquals(3660/60, $this->d->toMinutes('1:01:00'));
145153
$this->assertEquals(3674/60, $this->d->toMinutes('1:01:14'));
146154
$this->assertEquals(3865/60, $this->d->toMinutes('1:04:25'));
155+
$this->assertEquals(4149/60, $this->d->toMinutes('1:09:09'));
147156

148157
$this->assertEquals(0, $this->d->toMinutes('4', true));
158+
$this->assertEquals(0, $this->d->toMinutes('9', true));
149159
$this->assertEquals(1, $this->d->toMinutes('42', true));
150160
$this->assertEquals(1, $this->d->toMinutes('1:02', true));
161+
$this->assertEquals(1, $this->d->toMinutes('1:09', true));
151162
$this->assertEquals(2, $this->d->toMinutes('1:42', true));
152163
$this->assertEquals(11, $this->d->toMinutes('10:47', true));
153164
$this->assertEquals(60, $this->d->toMinutes('1:00:00', true));
@@ -157,6 +168,7 @@ public function testConvertingFormattedStringsToMinutes()
157168
$this->assertEquals(61, $this->d->toMinutes('1:01:14', true));
158169
$this->assertEquals(64, $this->d->toMinutes('1:04:25', true));
159170
$this->assertEquals(65, $this->d->toMinutes('1:04:55', true));
171+
$this->assertEquals(69, $this->d->toMinutes('1:09:09', true));
160172
}
161173

162174
public function testConvertSecondsToHumanizedString()

0 commit comments

Comments
 (0)