【问题标题】:Convert date to given format from input [duplicate]将日期从输入转换为给定格式[重复]
【发布时间】:2015-06-14 23:49:30
【问题描述】:

我需要将已经存储在数据库中的给定日期转换为某种格式。我一直在尝试用谷歌搜索它,但无法让它工作。

作为输入的格式d-j-Y( 06-16-2015 )

要转换的格式: F j, Y (June 16, 2015)

我一直在尝试转换的代码,

$date               = get_post_meta( $post_id, 'timeline_event_date', true );
$old_date           = date('d-j-Y', $date);
$old_date_timestamp = strtotime($old_date);
$new_date           = date('F j, Y', $old_date_timestamp);

var_dump(s):

  • var_dump$datestring(10) "06-16-2015"
  • var_dump$old_date: string(9) "01-1-1970"
  • var_dump$new_date: string(15) "January 1, 1970"

编辑重复问题

您标记的重复问题具有解决此问题的解决方案,但我认为对于所有遇到相同问题的 WordPress 用户来说,这是一个很好的测试用例 ..

【问题讨论】:

  • WordPress 元数据中的所有键都存储为varchar

标签: php wordpress date timestamp


【解决方案1】:

找到解决方案,以防有人需要:

$date   = get_post_meta( $post_id, 'timeline_event_date', true );

$parsed = date_parse_from_format('n-d-Y', $date);

$old_date_timestamp = mktime(
        $parsed['hour'], 
        $parsed['minute'], 
        $parsed['second'], 
        $parsed['month'], 
        $parsed['day'], 
        $parsed['year']
);

$new_date = date('F j, Y', $old_date_timestamp);

基本上,此代码将string 转换为正确的日期格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-23
    • 2023-03-30
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2015-09-30
    相关资源
    最近更新 更多