Генерация дат XML с эпохи Unix

Я хотел бы сгенерировать XML-файл с каждой третьей датой до заданной даты (например, 10 июня) с эпохи Unix, в 15:00 по Гринвичу. Нравиться:

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

Спасибо! Мне это нужно на PHP!


person Adrian    schedule 25.02.2011    source источник
comment
Я редактировал для пояснения, но не знал, имели ли вы в виду каждый третий день, или цифра 3 была опечаткой.   -  person Dave Jarvis    schedule 25.02.2011


Ответы (2)


Не уверен, что я полностью понимаю ваш вопрос, но вот код, который генерирует то, что, как я предполагаю, вы хотите. Отправить метку времени (секунды с начала эпохи).

<?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());
?>
person jsw    schedule 25.02.2011

Ниже приведен код (вы можете немного улучшить его, но вы поняли идею).

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()));
                }

        }
}

Пример запуска здесь

person Aravind Yarram    schedule 25.02.2011