эквивалент функции mysql CURRENT_DATE () в PHP

0

Привет, я вставляю запись даты в поле, которое имеет отметку времени по типу и поле по умолчанию CURRENT_TIMESTAMP... мое значение вставки будет выглядеть следующим образом:

'.($data[16] == '' ? CURRENT_DATE() : $data[16]).'

как бы отформатировать CURRENT_DATE() как 30 ноября-10, чтобы соответствовать формату $data [16], если нет. Также следует изменить тип поля на дату, а не на отметку времени?

  • 0
    У php такой функции нет.
  • 3
    Кто проголосовал за этот хромой вопрос?
Теги:
datetime

4 ответа

3
Лучший ответ

date($format,strtotime(CURRENT_DATE)) работает для меня.

1

CURRENT_DATE() - это функция MySQL. Вы можете использовать его как строковый литерал:

$sql_date = ($date == '') ?
  "DATE_FORMAT(CURRENT_DATE(),'%d-%b-%y')" : "'$date'";

mysql_query("UPDATE foo SET date=$sql_date");

Это предполагает, что $date безопасен для вставки SQL.

Или вы можете просто использовать PHP:

if (!$date) $date = date('%d-%M-%y');  
mysql_query("UPDATE foo SET date='$date'");

Лично я обычно использовал бы PHP-решение, так как он упростил использование одного и того же запроса с теми же записями безопасных параметров (которые не используются в этом примере), независимо от того, как вы создаете дату.

Также следует изменить тип поля на дату, а не на отметку времени

Если время не имеет значения, то это должно быть поле даты. Однако, если это поле даты/времени (но не текстовое поле), вы должны вставлять в формате YYYY-MM-DD, а приведенный выше код бесполезен.

То есть, если поле является текстом, то приведенный выше код может оказаться полезным. Однако, если вы просто сохраняете дату в одном поле, вы должны использовать поле даты. В этом случае формат, который вы вставляете, должен всегда находиться в ГГГГ-ММ-ДД. Когда вы извлекаете данные, вы можете отформатировать их так, как вы хотите для отображения.

0

Ну без дополнительной информации все, что я могу вам сказать,

вы должны изучить функцию date, а вторая arg где вы помещаете временную метку, которую вы можете создать с помощью mktime alt. strtotime

0

Этот вопрос не имеет смысла. Я предполагаю, что вы хотите вывести текущую дату.. в этом случае вы можете изменить формат следующим образом:

$today = date("M/d/y"); 

также, time() выведет текущую дату во вторую в отметке времени unix

$today = time(); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню