好!
我在从日期提取数据时遇到了一些困难。问题是我从一个未记录的API中得到一个数字。
"created": 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日左右出版的。只是为了抓点东西更新版本:
我猜如果最后一章是从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/
如果您使用PHP,那么您应该替换
return new Date(dateMils-zeroTo1970);
return date('Y-m-d', (dateMils-zeroTo1970));