Вопрос о дате PHP

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;
  }
6
задан Señor Reginold Francis 25 June 2009 в 14:01
поделиться

6 ответов

Попробуйте следующее:

$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';
8
ответ дан 8 December 2019 в 16:09
поделиться

В php 5.3.0 или выше вы можете использовать DateTime :: diff (также известный как date_diff ()).

Практически на любом php вы можете преобразовать даты в временные метки Unix и разделить разницу между ними на 86400 (1 день в секундах).

3
ответ дан 8 December 2019 в 16:09
поделиться

Я не думаю, что было указано, что вы можете использовать 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.";
}
1
ответ дан 8 December 2019 в 16:09
поделиться

Используйте класс DateTime, и тогда у вас будет метод diff .

0
ответ дан 8 December 2019 в 16:09
поделиться

Используйте тот факт, что время хранится в секундах:

 $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";
3
ответ дан 8 December 2019 в 16:09
поделиться

Попробуйте использовать 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] => 
)
0
ответ дан 8 December 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: