unix时间戳的公式是什么?
首先,我知道这个问题已经在这里被问/排序了:以数学方式从 unix 时间戳计算天数? .
我需要一个自定义函数/公式。所以它只返回 ISO 格式的日期。 “年-月-日”。
eg. 1316278442 = 2011-09-17
由分机编辑! 这是错误的!请不要读这篇文章。
我已经在这呆了一整天了!我唯一能得到的是星期几。
$dayOfWeek=($timestamp/86400)%7; //这里1是星期六,7是星期五
速度是问题,这就是为什么我不想使用 date('Ymd',$timestamp);
如果你不能帮助我自定义函数或公式,至少给我一个更好的解释如何做到这一点。它是用多种语言完成的,一定有人知道如何做到这一点。
预先感谢您的帮助。
First of all, i know this question has been sort of asked/sort-of answered here: Calculate day number from an unix-timestamp in a math way? .
I need a custom function/formula for this. so it only returns a ISO format date. "YYYY-MM-DD".
eg. 1316278442 = 2011-09-17
EDIT by Ext!
THIS IS WRONG ! Please don't read this.
I've been at this all day! The only thing i managed to get out is the day of the week.
$dayOfWeek=($timestamp/86400)%7; //And here 1 is Saturday, 7 is Friday
Speed is the issue, that is why i don't want to use date('Y-m-d',$timestamp);
If you cannot help me whit a custom function or formula, at least give me a better explanation on how to do this. It was done in so many languages, there must be someone out there that knows how to do this.
Thank you in advance for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是
date()
和DateTime::setTimestamp()
用于根据 unix 时间戳计算日期:<一个href="https://github.com/php/php-src/blob/d57eefe6227081001978c3a63224065af8b5728e/ext/date/lib/unixtime2tm.c#L39" rel="nofollow">https://github.com/php/php-src/blob/d57eefe6227081001978c3a63224065af8b5728e/ext/date/lib/unixtime2tm.c#L39
如您所见,这有点复杂闰年等
——
也就是说,如果你只需要星期几,似乎你可以安全地忽略闰年,只需使用您在问题中给出的公式:
$dayOfWeek=($timestamp/86400)%7
Here is the function that
date()
andDateTime::setTimestamp()
use to compute the date from a unix timestamp:https://github.com/php/php-src/blob/d57eefe6227081001978c3a63224065af8b5728e/ext/date/lib/unixtime2tm.c#L39
As you can see, this is a bit complicated by leap years, etc.
--
That said, if you need only the day of the week, it seems that you can safely ignore leap years, and just use the formula you given in the question:
$dayOfWeek=($timestamp/86400)%7
好的。功能完成。它采用 unix 时间戳并返回 YYYY-MM-DD。这就是我所需要的。我希望它对任何人都有帮助...
Ok. The function is complete. It takes a unix timestamp and returns a YYYY-MM-DD. This was all i needed. I hope it helps anyone ...
您可以先使用 unixtojd() 转换为 Julian,然后使用 cal_from_jd 拆分为年、月、日。
有点快了。下面的代码给了我这个结果:
You could convert to julian first with unixtojd() and then use cal_from_jd to split into year,month,day.
It's a little faster. The code below gives me this result: