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.

acf-seletor-datas

acf seletor datas

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

Posts Similares

  • Campo de Editor WYSIWYG

    O Campo Editor Wysiwyg cria uma área de conteúdo com todos os recursos do tinyMCE. Este campo é muito útil quando você precisa criar áreas separadas de conteúdo em um determinado custom post type ou post, segmentando melhor seu conteúdo. O Editor Wysiwyg não trará as abas “Visual / Texto” como o editor padrão do WordPress….

  • Criando grupos de campos e novos campos com o ACF

    Criando grupos de campos e novos campos com o ACF

    Agora que já vimos toda teoria sobre o que é o Advanced Custom Fields, vamos começar a falar de forma mais prática sobre o uso do plugin. O ACF trabalha com o conceito de Campos e Grupos de Campos, que são a primeira coisa que você deve entender. Digamos que você precisa criar campos que…

  • Função get_field() – Advanced Custom Fields

    Função get_field() – Advanced Custom Fields

    A função get_field retorna o valor de um dado campo, e você pode usá-lo para armazenar um valorem uma variável ou imprimir um valor com `echo`, embora para isso a the_field seja mais indicada. Note que o tipo de variável retornado é relativo ao tipo de campo. Por exemplo: Um repetidor irá retornar um array…

  • O que é o Advanced Custom Fields?

    O plugin Advanced Custom Fields (ACF) é a solução perfeita para qualquer site WordPress que precise de campos personalizados em formatos mais amigáveis e de fácil utilização, disponível em 2 versões: gratuita e PRO (versão paga e que posui algumas funcionalidades exclusivas). Os campos personalizados são uma funcionalidade nativa do WordPress, um campo para poder salvar dados…

  • Campo de Imagem

    Campo de Imagem

    O campo de Imagem permite que uma imagem seja selecionada e enviada para o servidor, utilizando a API nativa do WordPress para upload de imagens, o plupload. Campos adicionais deste tipo de campo Valor Retornado: Define o tipo de retorno dos dados. Você pode escolher entre Objeto (array de dados), URL da imagem (string), ou ID…

  • Campo de Checkboxes

    O campo de checkboxes cria uma lista de opções selecionáveis. Útil para escolher categorias ou informações que podem possuir multiplicidade. Campos adicionais deste tipo de campo Escolhas: Aqui você vai popular a lista de valores selecionáveis. Cada item desta lista deverá estar em uma linha,  e deverá ser preenchido no formato ‘valor : label’. Se você…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *