щебетзначение в удобном формате времени на Flash - PullRequest
0 голосов
/ 02 сентября 2011

Я часами гуглю и пока не нашел решения этой проблемы.

В настоящее время я получаю данные из файла twitter xml: http://twitter.com/statuses/user_timeline.xml?screen_name=clubbluecanopy

все работает нормально, мой формат даты показывает это: пт 12 августа 03:25:40 +0000 2011 Но я хочу это показать: 17 дней назад

вот мой flash as3 код:

var myXMLLoader:URLLoader = new URLLoader();
//myXMLLoader.load(new URLRequest("http://twitter.com/statuses/user_timeline.xml?screen_name=arunshourie"));

myXMLLoader.load(new URLRequest("twitter.php"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

function processXML(e:Event):void{
var myXML:XML = new XML(e.target.data);
trace(myXML.status[0].text);

tweet_1.text = String(myXML.status[0].text);
time.text= String(myXML.status[0].created_at);



}

Вот код php:

<?php
/*
* @return string
* @param string $url
* @desc Return string content from a remote file
* @author Luiz Miguel Axcar (lmaxcar@yahoo.com.br)
*/

function get_content($url)
{
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);

ob_start();

curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();

ob_end_clean();

return $string;
}

#usage:
$content = get_content ("http://twitter.com/statuses/user_timeline.xml?screen_name=clubbluecanopy");
echo $content;
?>

Я также использовал crossdomain.xml

был бы признателен, если кто-то может мне помочь!Спасибо!:)

1 Ответ

0 голосов
/ 02 сентября 2011

Fri Aug 12 03:25:40 +0000 2011 означает пятницу, 12 августа 2011 года, 03 часа 25 минут 40 секунд по Гринвичу

Это строка с форматированной датой в формате Flash

Вы можете создать другую функцию, которая даст вам необходимый вывод:

    private function toRelativeDate(d:Date):String {
            var now:Date=new Date();
            var millisecs:int=now.valueOf()-d.valueOf(); //gives you the num. of milliseconds between d and now
            var secs:int=int(millisecs / 1000);
            if(secs < 60) {
                return secs + " seconds ago";
            }else if(secs < 60*60) {
                return Math.round(secs / 60) + " minutes ago";
            } else if(secs < 60*60*24) {
                return Math.round(secs / (60*60)) + " hours ago";
            } else {
                return Math.round(secs / (60*60*24)) + " days ago";
            }
        }

Вы можете использовать его следующим образом:

time.text= toRelativedate(myXML.status[0].created_at);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...