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