1

好的 !

我在从日期中提取数据时遇到了一些困难。问题是我从一个未记录的 API 中获得了一个数字。

“创建”:734394
“last_chapter_date”:734883

我尝试将其除以 365,242 天(一年的确切天数)

2010,705231052289
所以显然这些是自 0.0.0000 以来经过的天数

我目前正在尝试这样的事情:http: //jsfiddle.net/LRUy5/4/

function zero21970(nDays) {
    // 0     70   2013  
    // |-----|-----|  

    // 0 to date
    var dateMils = nDays*24*60*60*100;
    // 0 to 1970
    zeroTo1970 = (1970*365.242)*24*60*60*100;

    //subtract time from 0-1970 from the time 0-date
    //to cut out the part from 1970-today
    return new Date(dateMils-zeroTo1970);
}

//http://www.mangaeden.com/api/manga/4e70e9f6c092255ef7004344/
zero21970(734394) //-> Jan 26 1974

我需要将它保存在数据库中并通过 php 或 javascript 使用它。有没有人认识这种格式,或者你知道格式化它的方便方法吗?

编辑:我应该补充一点,最后一章是在 2013 年 1 月 15 日左右发布的……只是为了有一些东西可以抓住。

4

2 回答 2

3

更新后的版本:

我猜如果最后一章是从 2013 年开始的,那么该值是从01.01.0001. 因此,我们可以更新初始日期以及更改setHours方法setDate以提高准确性:

var date = new Date("0001");
date.setDate(734883);
date.toGMTString();  // "Tue, 15 Jan 2013 00:00:00 GMT"

演示:http: //jsfiddle.net/LRUy5/6/


旧版:

我找到了一种可以在我的计算机上成功运行的解决方案:

var date = new Date("0000");
date.setHours(734394 * 24);
date.toGMTString();  // "Mon, 13 Sep 2010 21:00:00 GMT"

演示:http: //jsfiddle.net/LRUy5/5/

于 2013-01-19T00:42:53.673 回答
0

如果您使用的是 PHP,那么您应该替换

return new Date(dateMils-zeroTo1970);

return date('Y-m-d', (dateMils-zeroTo1970));
于 2013-01-19T00:43:55.467 回答