如何更改自定义元框字段中的数据格式

时间:2015-03-14 作者:Saiful

我想将日期格式更改为d-m-y 表示日-月-年格式。我已添加

\'date_format\' => __( \'d-m-Y\', \'cmb2\' )
但不起作用。现在是年月日。实际上,我想改变日期格式,比如从年月日到年月日。

mata field

以下是代码:

add_filter( \'cmb_meta_boxes\', \'cmb_sample_metaboxes\' );
function cmb_sample_metaboxes( array $meta_boxes ) {

    $prefix = \'_single_\';

    $meta_boxes[] = array(
        \'id\'         => \'coupons_metabox\',
        \'title\'      => \'Coupon details\',
        \'pages\'      => array( \'coupons\', ), // Post type
        \'context\'    => \'normal\',
        \'priority\'   => \'high\',
        \'show_names\' => true, // Show field names on the left
        \'fields\' => array(
            array( // Text Input
                \'name\' => \'The date the coupon expires\', // <label>
                \'desc\'  => \'The expiration date of the coupon. Leave if empty if the coupon doesn\\\'t have an expiration date.\', // description
                \'id\'    => $prefix . \'date\', // field id and name
                \'type\'  => \'text_date_timestamp\', // type of field,
                ),
        )
    );

    // Add other metaboxes as needed

    return $meta_boxes;
   }

add_action( \'init\', \'cmb_initialize_cmb_meta_boxes\', 9999 );
/**
 * Initialize the metabox class.
 */
function cmb_initialize_cmb_meta_boxes() {

    if ( ! class_exists( \'cmb_Meta_Box\' ) )
        require_once \'init.php\';

}

1 个回复
SO网友:Pieter Goosen

编辑您应该使用的date_create_from_format 或其别名DateTime::createFromFormat() 将格式转换为其他格式。您可以尝试以下方法

$date = DateTime::createFromFormat(\'m-d-Y\', \'03-09-2015\');
echo $date->format(\'d-m-Y\');
这将转换03-09-201509-03-2015

原始答案

这是一个PHP问题,而不是Wordpress问题。您可以简单地使用str_replace 更改/ 在您的约会中-. 您没有更改格式,因此不需要date_format 或任何其他与日期相关的功能

你可以试试

$date = \'03/09/2015\';
$modified_date = str_replace( \'/\', \'-\', $date );
echo $modified_date;
这将输出03-09-2015

结束