Excel yearfrac()stardate时钟

我试图使像“星际迷航”(Star Trek)那样的星星date变得更快。 我把它放在一个Excel或谷歌表格单元格,它工作的很好 –

=(YEARFRAC(DATE(YEAR(NOW()),1,1),NOW()))+(YEAR(NOW()))

到2017年4月13日2017.283。这对我想要的2017年来说是相当不错的。 一年中的百分比消失了。 但是要在“”之后做一下。 更准确的我想包括时间,所以更像2017.28345。 那可能吗? 然后我想把这个公式放在一个网页上,所以我可以像时钟一样检查它,也许PHP。

首先,要小心YEARFRAC。 如果不指定基数为1来使用一年中的实际天数,则默认情况下将计算该分数,假设所有月份具有30天,并且该年只有360天。

https://support.office.com/en-us/article/YEARFRAC-function-3844141e-c76d-4143-82b6-208454ddc6a8

这是更安全和完整的解决scheme来计算自己的分数:

 =YEAR(TODAY())+(NOW()-DATE(YEAR(TODAY()),1,1))/(DATE(YEAR(TODAY())+1,1,1)-DATE(YEAR(TODAY()),1,1)) 

这只是计算现在是全年(包括时间)的分数,并将其添加到年份。 使用(DATE(YEAR(TODAY())+1,1,1)-DATE(YEAR(TODAY()),1,1))处理闰年。

这个公式使用基本function,所以你应该能够把它翻译成其他语言,而不必链接到Excel来访问YEARFRACfunction。

我是这样做的 –

 <html> <head> <meta http-equiv="refresh" content="1" > <title>Current Stardate</title> </head> <body><center> <?php $year = date(Y); $day = date(z); $hours = date(H); $minutes = date(i); $seconds = date(s); $stardate = ($day/365)+$year; $stardatetime = (($day+(($hours+(($minutes+($seconds/60))/60))/24))/365)+$year; ?> <p>The current stardate is: </br><?php echo round($stardate, 5) ?></p> <p>The current stardate with time is: </br><?php echo round($stardatetime, 8) ?></p> <p><?php echo "The current earth date is: </br>" . date("l, d M Y. Hm:s") . " hours<br>"; ?></p> </center></body> </html> 

我需要做一个如果其他闰年,使其更好。 如果还有更好的方法,请让我知道。