Campo Seletor de Datas (Date Picker)
O campo seletor de datas (date picker) cria um seletor jQuery de datas. Este campo é muito útil quando temos postagens que precisam exibir uma data diferente da data de publicação, como a data de início e fim de um determinado evento.


Campos adicionais deste tipo de campo
- Formato dos dados: A string que representa a seqüência do formato da data. Este será o formato em que a data será guardada no banco de dados e retornada pela API. Se você pretende usar este campo para ordenar seus posts, por favor deixe o formato como yymmdd. Observe também que a seqüência de formato de data em JS é um pouco diferente de uma versão PHP, então você não vai usar o mesmo formato de quando configura a data que aparece em um post, nas opções do WordPress. Leia mais sobre formatos de data jQuery
- Formato de exibição: Este será o formato em que a data será exibidada para o usuário. “dd/mm/yy” é o formato de exibição mais utilizado para nosso padrão brasileiro. Leia mais sobre formatos de data jQuery
- Semana começa em: Usado apenas para definir qual será a primeira coluna do date picker exibido.
Como utilizar este campo em um template WP?
A API irá retornar uma string contendo a data no formato configurado previamente.
Dica: Você pode usar a função dateTime do PHP para ter maior controle sobre o valor retornado.
Se você planeja a sua data de saída esteja em um formato diferente, lembre-se que o formato de data em JS em em PHP são diferentes, e estarão exemplificados no final.
<?php
/*
* Exibindo valor único
*/
?>
<p>Posted on: <?php the_field('data-evento'); ?></p>
<?php
/*
* Criando um objeto PHP DateTime oa partir do valor do Date Picker Value
* este exemplo foi feito pensando no formato da data salva estar como: yymmdd (JS) = Ymd (PHP)
*/
$date = DateTime::createFromFormat('Ymd', get_field('data-evento'));
echo $date->format('d-m-Y');
/*
* Ordenação de posts baseado nas datas do Date Picker value
*/
$posts = get_posts(array(
'meta_key' => 'data-evento', // name of custom field
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
if( $posts )
{
foreach( $posts as $post )
{
setup_postdata( $post );
// ...
}
wp_reset_postdata();
}
/*
* Exemplos de formatos e suas diferenças em JS e PHP
*/
$js = "yymmdd"
$php = "Ymd"
$js = "dd/mm/yy"
$php = "d/m/Y"
$js = "yy_mm_dd"
$php = "Y_m_d"
?>
Traduzindo para outros formatos de datas
Se você precisar exibir a data num formato não americano, o WordPress contém a função date_i18n que te deixa fazer tais conversões de formatos de data.
<?php
$dateformatstring = "l d F, Y";
$unixtimestamp = strtotime(get_field('data-evento'));
echo date_i18n($dateformatstring, $unixtimestamp);
?>
Formatação de valor ( PHP < 5.3)
Se o servidor estiver executando uma versão do PHP anterior à 5.3, o mais provável é que você não tenha acesso à classe DateTime e suas funções. Como um paleativo, você pode usar as funções strtotime e date para formatar o valor.
<?php
$date = get_field('data-evento');
// $date = 19881123 (23/11/1988)
// extraindo dia (D), mês (M) e ano (Y)
$d = substr($date, 6, 2);
$m = substr($date, 4, 2);
$y = substr($date, 0, 4);
// formato de data UNIX
$time = strtotime("{$d}-{$m}-{$y}");
// formato de data (23/11/1988)
echo date('d/m/Y', $time);
// formato de data americano (November 11th 1988)
echo date('F n Y', $time);
?>
Date Query
Lembre-se que é possível utilizar o date_query do WordPress para ordenar suas postagens da forma que você precisar. Para isso, leiam os exemplos em https://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

