【问题标题】:Generate XML dates since the Unix Epoch生成自 Unix 纪元以来的 XML 日期
【发布时间】:2011-07-04 02:52:09
【问题描述】:

我想在给定日期之前每隔三个日期生成一个 XML 文件(例如, 6 月 10 日)自 Unix 纪元以来,格林威治标准时间下午 3 点。喜欢:

<timestamps>
    <timestamp time="1246000000" text="2011-06-10 15:00:00" />
</timestamps>

谢谢! 我需要它在 PHP 中!

【问题讨论】:

  • 我为澄清而进行了编辑,但不知道您的意思是每三天一次,还是数字 3 是印刷错误。

标签: php xml timestamp epoch


【解决方案1】:

不确定我是否完全理解你的问题,但这里有一些代码可以生成我猜你想要的东西。发送时间戳(自纪元以来的秒数)。

<?php

function generateXML($end_time){
    $three_days = 3 * 24 * 3600;

    echo "<timestamps>\n";
    for ($stamp = 15 * 60 * 60; $stamp < $end_time; $stamp += $three_days){
        $text = date('Y-m-d H:i:s', $stamp);
        echo "<timestamp time=\"$stamp\" text=\"$text\" />\n";
    }
    echo "</timestamps>";
}

# up to now: 
generateXML(time());
?>

【讨论】:

    【解决方案2】:
    
    #!/usr/bin/python
    import time
    unixtime, datestring = 15 * 60 * 60, ''
    while datestring < '2011-06-10 15:00:00':
     datestring = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(unixtime))
     print '<timestamps>'
     print '    <timestamp time="%s" text="%s" />' % (unixtime, datestring)
     print '</timestamps>'
     unixtime += (60 * 60 * 24 * 3)
    

    【讨论】:

      【解决方案3】:

      下面是代码(你可以稍微改进一下,但你明白了)。

      import java.util.*;
      import java.lang.*;
      
      class Main
      {
              public static void main (String[] args) throws java.lang.Exception
              {
              String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
      java.text.SimpleDateFormat sdf = 
            new java.text.SimpleDateFormat(DATE_FORMAT);
      
                      Calendar c=Calendar.getInstance();
                      c.setTimeInMillis(0);//reset to epoch
                      System.out.println(c.getTime());
      
                      Date d=new Date(1970,6,10);
                      Calendar inputDate=Calendar.getInstance();
                      inputDate.setTime(d);
      
                      while(c.before(inputDate))
                      {
                      c.add(Calendar.DATE,3);
                      System.out.println(sdf.format(c.getTime()));
                      }
      
              }
      }
      

      示例运行here

      【讨论】:

        猜你喜欢
        • 2012-01-31
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 2019-11-11
        • 1970-01-01
        • 2017-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多