Pergunta

Eu tenho uma coluna datetime no MySQL.

Como se pode converter no visor como mm / dd / yy H:? H (AM / AM) usando PHP

Foi útil?

Solução 2

Para converter uma data recuperado do MySQL para o formato solicitado (mm/dd/yy H:M (AM/PM)):

// $datetime is something like: 2014-01-31 13:05:59
$time = strtotime($datetimeFromMysql);
$myFormatForView = date("m/d/y g:i A", $time);
// $myFormatForView is something like: 01/31/14 1:05 PM

Consulte a PHP data opções para ajustar o formato.

Outras dicas

Se você está procurando uma maneira de normalizar uma data para o formato MySQL, use o seguinte

$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );

O $phpdate = strtotime( $mysqldate ) linha aceita uma string e executa uma série de heurísticas para transformar essa string em um timestamp unix.

Os usos linha $mysqldate = date( 'Y-m-d H:i:s', $phpdate ) que timestamp e função date do PHP para transformar essa volta timestamp no formato de data padrão do MySQL.

( Nota do Editor : Esta resposta está aqui por causa de uma pergunta inicial com confundindo redação, e a utilidade geral do Google esta resposta fornecida, mesmo que didnt de responder diretamente a pergunta que agora existe)

Se você estiver usando PHP 5, você também pode tentar

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");
$valid_date = date( 'm/d/y g:i A', strtotime($date));

Referência: http://php.net/manual /en/function.date.php

Finalmente a solução certa para PHP 5.3 e acima:

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);
echo $date->format('m/d/y h:i a');

Uma maneira mais fácil seria a de formatar a data diretamente na consulta MySQL, em vez de PHP. Veja a MySQL entrada manual para DATE_FORMAT .

Se você prefere fazê-lo em PHP, então você precisa do href="http://uk.php.net/date" rel="noreferrer"> função

Esqueça tudo. utilização apenas:

$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))

Para formatar corretamente um objeto DateTime em PHP para armazenar no MySQL usar o formato padronizado que usos do MySQL, que é ISO 8601 .

PHP teve este formato armazenado como uma constante desde a versão 5.1.1, e eu recomendo usá-lo em vez de digitar manualmente a seqüência de cada vez.

$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);

Este, e uma lista de outras constantes PHP DateTime estão disponíveis em http://php.net/manual/en/class.datetime.php#datetime.constants.types

Isso deve formatar um campo em uma consulta SQL:

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename

Use a função de data :

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>

Dependendo da configuração do MySQL data e hora. Normalmente: 2011-12-31 07:55:13 formato. Esta função muito simples deve fazer a mágica:

function datetime()
{
    return date( 'Y-m-d H:i:s', time());
}

echo datetime(); // display example: 2011-12-31 07:55:13

Ou um pouco mais antecedência para coincidir com a questão.

function datetime($date_string = false)
{
    if (!$date_string)
    {
        $date_string = time();
    }
    return date("Y-m-d H:i:s", strtotime($date_string));
}
SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

Se você não quer mudar todas as funções em seu código PHP, para mostrar o formato da data esperada, alterá-lo na fonte -. Seu banco de dados

É importante mencionar as linhas com o como operador como no exemplo acima (como dateFrom, como dateUntil). Os nomes que você escreve não são os nomes, as linhas serão chamados em seu resultado.

A saída deste exemplo será

[Dia do mês, numérico (0..31)]. [Nome Month (January..December)]. [Ano, numéricos, quatro dígitos]

Exemplo: 5.August.2015

Alterar os pontos com o separador de escolha e verificar o DATE_FORMAT (data, formato) função para mais formatos de data.

Você também pode ter sua consulta retornar o tempo como um timestamp Unix. Isso se livrar da necessidade de strtotime() chamada e tornar as coisas um pouco menos intensa no lado do PHP ...

select  UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;

Então, em PHP apenas usar a função date() para formatá-lo do jeito que você gostaria.

<?php
  echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>

ou

<?php
  echo date('F j, Y, g:i a', $row->unixtime);
?>

Eu gosto desta abordagem em vez de usar MySQL 's DATE_FORMAT função, pois permite você reutilize a mesma consulta para pegar os dados e permite que você alterar a formatação em PHP.

É chato ter duas consultas diferentes apenas para mudar a forma como a data olhares na interface do usuário.

Você pode ter problemas com datas não retornados em Unix Timestamp, então isso funciona para mim ...

return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))

Este trabalho ...

echo date('m/d/y H:i (A)',strtotime($data_from_mysql));

Usando PHP versão 4.4.9 e MySQL 5.0, isso funcionou para mim:

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDate é a coluna na MySQL .

$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top