СЕЙЧАС () функция в PHP

Старый вопрос, но в данных ответах несколько точек.

Научная нотация.

!isNaN('1e+30') is true, однако в большинстве случаев, когда люди

Большие плавающие числа могут вести себя странно

Наблюдать (используя Node.js):

> var s = Array(16 + 1).join('9')
undefined
> s.length
16
> s
'9999999999999999'
> !isNaN(s)
true
> Number(s)
10000000000000000
> String(Number(s)) === s
false
>
]

С другой стороны:

> var s = Array(16 + 1).join('1')
undefined
> String(Number(s)) === s
true
> var s = Array(15 + 1).join('9')
undefined
> String(Number(s)) === s
true
>

Итак, если вы ожидаете String(Number(s)) === s, тогда лучше ограничьте свои строки до 15 цифр максимум (после опущения ведущих нулей).

Infinity

> typeof Infinity
'number'
> !isNaN('Infinity')
true
> isFinite('Infinity')
false
>

Учитывая все это, проверяя, что данная строка является числом, удовлетворяющим всем следующим:

  • не научная нотация
  • предсказуемое преобразование в Number и обратно в String
  • конечный

не является такой простой задачей. Вот простая версия:

  function isNonScientificNumberString(o) {
    if (!o || typeof o !== 'string') {
      // Should not be given anything but strings.
      return false;
    }
    return o.length <= 15 && o.indexOf('e+') < 0 && o.indexOf('E+') < 0 && !isNaN(o) && isFinite(o);
  }

Однако даже этот далеко не полный. Ведущие нули здесь не обрабатываются, но они проводят проверку длины.

446
задан Peter Mortensen 13 July 2019 в 18:03
поделиться

3 ответа

Не считая:

date("Y-m-d H:i:s");
975
ответ дан 22 November 2019 в 22:57
поделиться

Try this:

date("Y-m-d H:i:s");
25
ответ дан 22 November 2019 в 22:57
поделиться
date('Y-m-d H:i:s')

Посмотрите здесь для более подробной информации: http://pl.php.net/manual/en/function.date.php

139
ответ дан 22 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

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