我想生成一个 XML 文件,自 Unix 纪元(格林威治标准时间下午 3 点)以来,每隔三个日期到给定日期(例如,6 月 10 日)。像:
<timestamps>
<timestamp time="1246000000" text="2011-06-10 15:00:00" />
</timestamps>
谢谢!我需要它在 PHP 中!
不确定我是否完全理解你的问题,但这里有一些代码可以生成我猜你想要的东西。发送时间戳(自纪元以来的秒数)。
<?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());
?>
#!/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)
下面是代码(你可以改进一点,但你明白了)。
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()));
}
}
}
在此处运行示例