将字段中的所有日期转换为Unix时间,但已在Unix时间中的日期除外

时间:2014-05-09 作者:Mark Devlin

我有一个元字段,它与MM/dd/yy hh:MM日期和Unix时间戳日期混合在一起。如何将db中的所有MM/dd/yy hh:MM日期转换为Unix?我只有有限的PHP和SQL知识,所以要温柔。谢谢

1 个回复
最合适的回答,由SO网友:shahpranaf 整理而成

strtotime 是可用于此目的的php函数。strtotime — 将任何英文文本datetime描述解析为Unix时间戳

首先使用meta键获取所有帖子

  • 然后从元字段中获取日期值
  • 然后转换为unix时间戳
    $args = array( \'posts_per_page\' => -1, \'meta_key\' => \'meta_key_name\' );
    
    $myposts = get_posts( $args );
    foreach ( $myposts as $post ) : setup_postdata( $post ); 
             $date = get_post_meta(get_the_id(), \'meta_key_name\', true);
    
             if( strtotime($date) != false ){ // To exclude dates which are already in timestamp
                update_post_meta(get_the_id(), \'meta_key_name\', strtotime($date));
              }
        endforeach; 
    wp_reset_postdata();?>
    
    

  • 结束

    相关推荐

    将自定义SQL查询注入页面/主题

    我已经为我们的WordPress网站编写了一个自定义sql查询(相当复杂,用标准WordPress代码无法实现),我已经通过$pageposts = $wpdb->get_results($query, OBJECT);, 它产生了我所期望的结果。现在我想通过一个钩子(理想情况下)集成这个查询,这样我就不必更新主题页面,这样我们仍然可以更新主题。我知道钩子pre_get_posts() 允许您调整主查询,但从我发现的情况来看only 允许你adjust. E、 g。$query->set( \