Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何基于unix时间计算星期几_Date_Math - Fatal编程技术网

Date 如何基于unix时间计算星期几

Date 如何基于unix时间计算星期几,date,math,Date,Math,我知道在大多数编程语言中都有函数/类可以做到这一点,但我想知道计算方法 那么:如何从unix时间(以秒为单位)转换为一个天数(例如,0表示星期天,1表示星期一等) 提前谢谢。顺便说一句:这是我关于堆栈溢出的第一篇文章。与其他日期/时间函数(例如)的复杂程度相比,您提出的问题相当简单 Unix时间定义为1970年1月1日UTC 00:00(午夜)之后经过的秒数 你可以查阅日历,发现1970-01-01是星期四。一天有24*60*60=86400秒 因此,值0到86399是星期四,86400到172

我知道在大多数编程语言中都有函数/类可以做到这一点,但我想知道计算方法

那么:如何从unix时间(以秒为单位)转换为一个天数(例如,0表示星期天,1表示星期一等)


提前谢谢。顺便说一句:这是我关于堆栈溢出的第一篇文章。

与其他日期/时间函数(例如)的复杂程度相比,您提出的问题相当简单

  • Unix时间定义为1970年1月1日UTC 00:00(午夜)之后经过的秒数

  • 你可以查阅日历,发现1970-01-01是星期四。一天有24*60*60=86400秒

  • 因此,值0到86399是星期四,86400到172799是星期五,172800到259199是星期六,等等。这些是86400秒的块,以0对齐

  • 假设T是您的Unix时间戳。然后floor(T/86400)告诉您1970-01-01之后的天数。0=1月1日星期四;1=1月2日星期五;2=1月3日星期六;等等

  • 加4和模7。现在0→ 4.1.→ 5.2.→ 6.3.→ 0; 4.→ 1.5.→ 2.6.→ 3.7.→ 4.8.→ 5.9→ 6.10→ 0; 等等,这是你的最终答案

  • 总结:星期几=(楼层(T/86400)+4)第7版。

  • (这假设您希望使用UTC表示一周中的某一天。如果要计算另一个时区的时间,则需要先在T上执行小时和分钟的加减。)