java中定义一个字符串类型的日期 算出这个月的第一天和下个月的第一天。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中定义一个字符串类型的日期 算出这个月的第一天和下个月的第一天。相关的知识,希望对你有一定的参考价值。

参考技术A public void test(String date)

String[] dates=date.split("-");
int year=Integer.parseInt(dates[0]);
int month=Integer.parseInt(dates[1]);
System.out.println("本月第一天为:"+year+"-"+(month<10?("0"+month):(month))+"-"+"01");
month++;
if(month>12)

year++;
month=1;

System.out.println("下月第一天为:"+year+"-"+(month<10?("0"+month):(month))+"-"+"01");
本回答被提问者采纳
参考技术B 这个月的第一天和下个月第一天干嘛?计算式几月几号还是其他?
如果是几月几号这个就太简单了

用于显示距当前日期超过 8 个月的 WordPress 自定义帖子类型的自定义查询

【中文标题】用于显示距当前日期超过 8 个月的 WordPress 自定义帖子类型的自定义查询【英文标题】:Custom query for displaying WordPress custom post types that are more than 8 months old from current date 【发布时间】:2012-08-16 15:56:22 【问题描述】:

我在 Wordpress 中的 for 循环中使用以下自定义查询,使我能够为我为“新闻”创建的自定义帖子类型的前 8 个月创建一个选项卡式存档。

这非常有效,但是我希望在“旧新闻”标题下显示每个旧帖子。我正在努力弄清楚如何在任何时候将距当前日期超过 8 个月的帖子分开。

谁能告诉我一个自定义查询结构可以让我做到这一点。

这是我用来在相关容器中输出 CPT 的代码。

<?php for($i = $this_month-1; $i > $this_month-8; $i--) :
        if($i==-1)$m=11;
        if($i==-2)$m=10;
        if($i==-3)$m=9;
        if($i==-4)$m=8;
        if($i==-5)$m=7;
        if($i==-6)$m=6;
        if($i==-7)$m=5;
        if($i==-8)$m=4;
        else$m=$i;

        query_posts( array(
            'post_type' => 'news',
            'posts_per_page' => '-1',
            'orderby' => 'date',
            'order' => 'ASC',
            'monthnum'=>$m
        ) );  
.......

【问题讨论】:

【参考方案1】:

你可以试试这个

<?php 
    add_filter('posts_where', 'filter_where');
    query_posts( array('post_type' => 'news', 'posts_per_page' => '-1', 'orderby' => 'date')); 
    function filter_where($where = '')
        $where .= " AND post_date < '".date('Y-m-d', strtotime('-8 month'))."'";
        return $where;
    
    remove_filter('posts_where', 'filter_where');
    if (have_posts()) : 
        while (have_posts()) : the_post();
        // your code
        endwhile;
    endif;
    wp_reset_query();
?>

更新:也许这对你有帮助。

$args = array(
    'post_type' => 'news',
    'posts_per_page' => '-1',
    'orderby' => 'date',
    'year'     => date('Y'), // for current year, date('Y')-1 for 1 year ago
    'monthnum' => $m, // the month in the loop
    'order'    => 'ASC'
);
query_posts( $args );

【讨论】:

感谢您的帮助,效果很好,希望您喜欢您的观点 :) !我现在在上面的问题中使用的代码有点麻烦。它按月列出所有内容,但包括前几年的帖子,我该如何过滤掉这个查询中的旧帖子(超过 8 个月)?再次感谢您 如果您的代码收到超过 8 个月的帖子,那么它可能是在去年。 抱歉,我之前的评论不是很清楚。您回答的问题显示了所有超过 8 个月的新闻,这很棒。另一个问题如下。我在原始问题中包含的自定义查询按月显示所有新闻帖子,但它不会删除超过 8 个月的帖子,例如,如果我在去年 8 月的新闻中有帖子,它会出现在当前的八月列表中。是否有任何自定义查询我可以用来删除这些。 (查询目前处于 for 循环中,因为我需要循环几个月来打印导航菜单 你想按月显示帖子,但只显示当年的帖子吗? 不,我只是想编辑我上面写的查询,以便它只包括过去 8 个月的帖子,目前它只是拉过任何具有相同月份的帖子,所以所有帖子都被拉过以 8 月为例,即使是 2009 年 8 月【参考方案2】:

我不太了解 wordpress,但可以在逻辑上为您提供帮助。据我所知,这可以通过在检索“旧新闻”类别的帖子时检查查询中的“WHERE creation_date

<?php $today = date('Y-m-d'); ?>

然后从中减去 8 个月,你会得到一个大 8 个月的日期

<?php $eight_month = date('Y-m-d',strtotime("-8 month $today")); ?> 

现在您可以在查询中使用 $eight_month,这样您的查询就会是这样的。检查您存储在数据库中的日期格式以供发布,如果它与格式“Y-m-d”不同,请相应更改我的格式

“SELECT * FROM posts WHERE creation_date

希望这是您想要的,并在您的项目中为您提供帮助。祝你好运,祝你有美好的一天

【讨论】:

以上是关于java中定义一个字符串类型的日期 算出这个月的第一天和下个月的第一天。的主要内容,如果未能解决你的问题,请参考以下文章

Java - 在指定的给定月份 - 年份范围内打印每个月的第一个和最后一个日期

Java中获取去年最后一天的日期

java怎么得到某个月的第一天和最后一天的日期,以2012-06为例

Java语言,已知一个年月日的日期,获取该日期是这一年的多少天...........

用于显示距当前日期超过 8 个月的 WordPress 自定义帖子类型的自定义查询

使用给定的 DateTime 对象获取一个月的第一天和最后一天