首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >上个月的名称

上个月的名称
EN

Stack Overflow用户
提问于 2011-07-08 01:04:07
回答 2查看 566关注 0票数 1

请把上个月的名字打印出来。

我正在写Drupal7代码块,在我的网站上代表“上个月的小姐/先生”,我想知道如何做得最好:

额外的困难是,我的网站是俄语的,名字是下降的。

目前,我已经在数组中硬编码了月份名称。我不知道如何在该数组中找到当前索引:

代码语言:javascript
运行
复制
function pref_block_view($block_name = '') {
  $MONTHS = array(
    'января',
    'февраля',
    'марта',
    'апреля',
    'мая',
    'июня',
    'июля',
    'августа',
    'сентября',
    'октября',
    'ноября',
    'декабря',
  );
  ...
if ($block_name == 'pref_mister') {
    $result = db_query("
select r.id,
        count(r.id),
        u.first_name,
        u.avatar,
        u.city
from pref_rep r, pref_users u where
        r.nice=true and
        to_char(current_timestamp - interval '1 month', 'IYYY-MM') =
        to_char(r.last_rated, 'IYYY-MM') and
        u.female=false and
        r.id=u.id
group by r.id , u.first_name, u.avatar, u.city
order by count(r.id) desc
limit 1
");
    $record = $result->fetchObject();

    return array(
      'subject' => sprintf('Фаворит %s', $MONTHS[2]),
      'content' => sprintf('
<p align="center">%s</p>
<p align="center">%s</p>
<p align="center">%u оценок</p>',
                     user_link($record),
                     user_avatar($record),
                     $record->count),
    );
  }

我试过了

代码语言:javascript
运行
复制
setlocale(LC_TIME, "ru_RU");
print strftime("%B", strtotime("1/3/2003"));
# don't know how to get the prev. month date above...

但它给了我有趣的字符(可能不是UTF8中的俄语--这正是我需要的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-08 01:07:04

代码语言:javascript
运行
复制
date("n");

将给出没有前导零的月份,数组索引减去1。

编辑:我的意思是减去2,因为你想要上个月。然后确保它不会变成负片。

票数 1
EN

Stack Overflow用户

发布于 2011-07-08 01:07:24

创建一个由月份组成的字符串数组(0将是1月,12月将是11),使用日期函数获取当前月份-如果PHP有的话。

然后在字符串数组中搜索当前月份的索引-1并返回

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6614327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档