繁体   English   中英

格式化RSS Feed日期和时间

[英]Formatting an RSS Feed Date and Time

我有一个RSS Feed,我使用FeedRoll来创建它,我正在通过xslt将其拉入我的站点。 我的问题是我必须创建哪种格式的JavaScript才能格式化日期,使之看起来像这样:

十二月04,2013 05:00:00上午

而是看起来像:

2013年12月4日下午5:00

FeedRoll提供的脚本是:

<script language="JavaScript" src="http://www.feedroll.com/rssviewer/feed2js.php?
src=http%3A%2F%2Frss.cnn.com%2Frss%2Fcnn_topstories.rss&num=5&date=y&tz=+n/-
n/'feed'&utf=y"  charset="UTF-8" type="text/javascript"></script>

显示如下: 在此处输入图片说明

看起来这个特定的提要是由php驱动的,并且偏移量设置为:+ n / -n /'feed',但这对我来说没有任何意义。 我怎样才能像上面所寻找的那样使月份缩短为零?

我假设Javascript是最简单的方法...从逻辑上讲,我陷入困境。

****更新****(这是我的样式表的外观):

  <xsl:template name="news_feed">
     <script language="JavaScript" src="{RSSSrc}"  charset="UTF-8"
                type="text/javascript"></script>
  </xsl:template>

  <xsl:template match="NewsPage">
    <div class="news-block">
        <div class="holder">
            Image goes here...
            <div class="section">
                <dl>
                    <xsl:call-template name="news_feed"/>
                </dl>
                </div>
           </div>
    </div>
  </xsl:template>

我很快可以让Google看到Feedroll仅提供这种日期格式。 (可以选择设置自定义时区)

如果您确实反对,则可以设置一个onload函数,该函数使用rss-date类获取所有元素,然后将innerText解析为Date对象。 然后将其再次输出为您选择的日期格式。

编辑:这是使用jquery的javascript实现。

最难的部分甚至不是选择和解析。 但是实际上只是将字符串格式化为所需的格式。 如果您不喜欢使用jquery,只需少量的工作就可以删除所有jquery。

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type='text/javascript'>
function myFormat(dateTime) {
    var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    var dateString = months[dateTime.getMonth()] + ' ' + dateTime.getDate() + ', ' + dateTime.getFullYear();
    var timeString;
    if (dateTime.getHours() == 0)
        timeString = "12:" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "AM";
    else if (dateTime.getHours() < 12)
        timeString = dateTime.getHours() + ":" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "AM";
    else if (dateTime.getHours() == 12)
        timeString = "12:" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "PM";
    else
        timeString = (dateTime.getHours()-12) + ":" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "PM";
    return dateString + ' ' + timeString;
}
$(document).ready(function() {$('.rss-date').each(function() {$(this).text(myFormat(new Date($(this).text())));});});
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM