Solution for FormArray controllers
Инициализация FormArray Form Builder
formInitilize() {
this.Form = this._formBuilder.group({
formArray: this._formBuilder.array([this.createForm()])
});
}
Создание формы
createForm() {
return (this.Form = this._formBuilder.group({
convertodecimal: ['']
}));
}
Установка значений формы в контроллере форм
setFormvalues() {
this.Form.setControl('formArray', this._formBuilder.array([]));
const control = <FormArray>this.resourceBalanceForm.controls['formArray'];
this.ListArrayValues.forEach((x) => {
control.push(this.buildForm(x));
});
}
private buildForm(x): FormGroup {
const bindvalues= this._formBuilder.group({
convertodecimal: x.ArrayCollection1? parseFloat(x.ArrayCollection1[0].name).toFixed(2) : '' // Option for array collection
// convertodecimal: x.number.toFixed(2) --- option for two decimal value
});
return bindvalues;
}
Попробуйте следующее:
$shoutDate = date('Y-m-d', $shoutTime);
if ($shoutDate == date('Y-m-d'))
return date('H:i', $shoutTime);
if ($shoutDate == date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') - 1, date('Y'))))
return 'yesterday';
return gregoriantojd(date('m'), date('d'), date('y')) - gregoriantojd(date('m', $shoutTime), date('d', $shoutTime), date('y', $shoutTime)) . ' days ago';
В php 5.3.0 или выше вы можете использовать DateTime :: diff (также известный как date_diff ()).
Практически на любом php вы можете преобразовать даты в временные метки Unix и разделить разницу между ними на 86400 (1 день в секундах).
Я не думаю, что было указано, что вы можете использовать strtotime , чтобы получить «Вчера». Это делает его более читаемым (и более легким для запоминания), чем вычисление дат «вручную», и, вероятно, также менее подвержено ошибкам.
$ int = strtotime ('Yesterday');
if(date('Y-m-d', $shoutTime) == date('Y-m-d') {
return date('H:i:s', $shouTime);
} elseif(date('Y-m-d', $shoutTime) == date('Y-m-d', strtotime('Yesterday')) {
return "Yesterday.";
} else {
$days = floor($shoutTime - time() / 86400);
return "$days ago.";
}
Используйте класс DateTime, и тогда у вас будет метод diff .
Используйте тот факт, что время хранится в секундах:
$days = floor(($shoutTime - time()) / 86400) + 1; // 86400 = 24*60*60
switch ($days) {
case 0:
return date('H:i', $shoutTime);
case -1:
return 'yesterday';
case 1:
return 'tomorrow';
}
return "$days ago";
Попробуйте использовать date_parse.
Из руководства:
<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>
Напечатает
Array
(
[year] => 2006
[month] => 12
[day] => 12
[hour] => 10
[minute] => 0
[second] => 0
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array()
[error_count] => 0
[errors] => Array()
[is_localtime] =>
)