前端工程师不可不知的时间和地理坐标🔥

关于时间

GMT和UTC

GMT,即格林尼治标准时间,也就是世界时。GMT的正午是指当太阳横穿格林尼治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。

UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。

所以,UTC与GMT基本上等同,误差不超过0.9秒。

时区

地球自西向东旋转,东边比西边先看到太阳,东边的时间也比西边的早。为了统一世界的时间,1884年的国际经度会议规规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为零时区(GMT+00),东1-12区,西1-12区,中国北京处于东8区(GMT+08)。

若英国时间为6点整,则GMT时间为6点整,则北京时间为14点整。

UNIX时间戳或称POSIX时间

计算机中的UNIX时间戳,是以GMT/UTC时间「1970-01-01T00:00:00」为起点,到具体时间的秒数,不考虑闰秒。这么做当然是为了简化计算机对时间操作的复杂度。

比如我的电脑现在的系统时间为2015年2月27日15点43分0秒,因为我的电脑默认时区为东8区,则0时区的时间为2015年2月27日7点43分0秒,则UNIX时间戳为1425022980秒。

js设置浏览器中cookie的过期时间

Chrome浏览器cookie存储的时间是GMT时区的时间,即:北京标准时间-8小时。 查看cookie有效期时默认加8小时就对了。
IE和FF浏览器还是把本地时间写入cookie的过期时间

2038问题

2038年问题是指在使用POSIX时间的32位计算机应用程序上,格林尼治时间2038年1月19日凌晨03:14:07(北京时间:2038年1月19日中午11:14:07)之后无法正常工作

2^32 = 2147483647

时间戳转换 2147483647 -》 2038-01-19 11:14:07

历史上因为时间戳溢出导致的重大事故

1996年6月4日对欧洲航天局来说是黑暗的一天,阿丽亚娜5型运载火箭第一次发射,它携带了四枚昂贵的科学卫星,火箭仅仅升空37秒就变成了天空中的一团火焰。调查显示,故障与硬件无关而与软件有关。一个数据从64位浮点值转变成16位符号整数值后发生整数溢出。这起事故可能是整数溢出导致最昂贵事故,损失超过3亿美元。整数溢出是因为超过数据储存空间的最大容量而发生的错误。16位空间能储存最多32,767个值,32位空间能储存最多2,147,483,647个值。

关于地理坐标

GPS

全球定位系统(Global Positioning System,GPS)是一种以空中卫星为基础的高精度无线电导航的定位系统,它在全球任何地方以及近地空间都能够提供准确的地理位置、车行速度及精确的时间信息.
navigator.geolocation.getCurrentPosition(function (position) {
  console.log(`"经度" + ${position.coords.longitude}`)
  console.log(`"纬度" + ${position.coords.latitude}`)
  console.log(`"准确度" + ${position.coords.accuracy}`)
  console.log(`"海拔" + ${position.coords.altitude}`)
  console.log(`"海拔准确度" + ${position.coords.altitudeAcuracy}`)
  console.log(`"行进方向" + ${position.coords.heading}`)
  console.log(`"地面速度" + ${position.coords.speed}`)
}, function (err) {
// code:返回获取位置的状态
//          0  :  不包括其他错误编号中的错误
// ​             1  :  用户拒绝浏览器获取位置信息
// ​             2  :  尝试获取用户信息,但失败了
// ​             3  :   设置了timeout值,获取位置超时了
}, {
    enableHighAcuracy: false, //位置是否精确获取
    timeout: 5000,            //获取位置允许的最长时间
    maximumAge: 1000          //多久更新获取一次位置
})

互联网地图坐标系分类

  1. WGS84(GPS)

WGS 是世界大地测量系统(World Geodesic System)国际标准,一般从国际标准的GPS设备获取的坐标都是WGS84,以及国际地图提供商使用的坐标系。H5中的geolocation.getCurrentPosition获取的就是这个坐标。

  1. GCJ02(火星坐标)

中国标准,国测局02年发布的坐标系。又称“火星坐标”。在中国,必须至少使用“GCJ02”对地理位置进行首次加密。比如谷歌中国、高德、腾讯都在用这个坐标系。

  1. BD09

百度标准,在“GCJ02”的基础上进行二次加密。

以上三者可以互相转换,怎么转换可以google或者百度,网上有很多

最后,再告诉你一个关于地图的冷知识——所有地球坐标系的原点(0,0),都在西非附近的大西洋里,这个点是零度经线,也就是高中学过的本初子午线与赤道的交点。

世界的原点并非空无一物,而漂浮着一个气象浮标,它有个名字,叫“灵魂”(Soul)。而(0,0)这个坐标也有个名字,叫做空虚岛(Null Island)。
avatar

空虚岛上的浮标Station 13010 - Soul
世界的原点叫做空虚岛,岛上飘着一个灵魂,有趣...有趣...

中国的火星坐标系也有个大地原点。。。

avatar

Image placeholder
dtarker
未设置
  56人点赞

没有讨论,发表一下自己的看法吧

推荐文章
微软张若非:搜索引擎和广告系统,那些你所不知的AI落地技术

这两年,被誉为“ 皇冠上的明珠”的自然语言处理领域发展愈发火热,成为了业内新宠,而 搜索和广告这两大老牌技术领域似乎已被大家遗忘。其实,这两大接地气的工程领域仍是各企业竞相抢夺的市场之一。近日,AI科

[Base 新加坡] 领航电商平台招聘前端工程师

地点新加坡,泛东南亚最大电商平台,新加坡知名团队,国际化平台,富有竞争的薪资,享受新加坡优质生活环境及教育资源,公司申请EP,属于技术引进性人才签证。可携带家人一起前往新加坡工作生活,子女可正常入托入

晋级高级前端工程师,你需要开发过这七类项目

近些日子,随着JavaScript擅长做更多的事情,它也变得很难被全部掌控(更不用说不可能)。对这门语言更好的理解以及更多的经验意味着更多的工作机会。因此,花费时间来学习新东西很有用。学习编程最好的也

我们不知道要花多少时间解决问题

分享链接:http://kyleprifogle.com/dear-startup/ 我在IT行业工作,发现一个奇怪的现象。职业生涯的早期,我从事Web开发,比如开发CRUD应用、构建API等。我注意

万字长文|1分36秒,100亿,支付宝技术双11答卷:没有不可能

2019年双11来了。1分36秒100亿,5分25秒超过300亿,12分49秒超500亿……如果没有双11,中国的互联网技术要发展到今天的水平,或许要再多花20年。从双11诞生至今的11年里,有一个场

分层存储超详细解读,为什么大数据时代它已不可或缺

如今,分层存储已成为了一种常见的存储方法,它将数据存储在具有不同特性(如性能、成本和容量)的不同存储介质上。不同的存储媒介被分配到不同的层次结构中,其中最高性能的存储媒介被认为是第0层或第1层,然后是

css有不可继承属性吗?

css继承性:CSS继承可定义为特定的css属性向下传递到子孙元素,就是指被包在内部的标签将拥有外部标签的样式,即子元素可以继承父元素的属性。继承是一种规则,它允许样式不仅应用于某个特定html标签元

css设置input不可编辑

css设置input不可编辑给input加上css样式pointer-events:none;即可input{ pointer-events:none; }使用pointer-events来阻止元素成

jquery如何设置元素不可点击?

jquery如何设置元素不可点击?jquery设置表单元素不可点击可以使用attr()方法,给它们加上readonly、disabled属性。设置其他元素不可点击,可以使用css()方法,设置它们的p

你不知道的 PHP 缓存技巧

前言 相信有一定开发经验的PHP程序员都有缓存的使用经验,包括但不限于redis缓存,模板缓存,路由缓存,配置缓存,数据库缓存,还有opcache(真的很有用),但是今天我不准备炒冷饭了,我要讲点你不

分享 10 个你可能不知道的 Laravel Eloquent 小技巧

Laravel是一个功能丰富的框架。但是,你无法从官方文档中找到所有可用的功能。以下是一些你可能不知道的功能。 1.获取原始属性 当修改一条Eloquent模型记录的时候你可以通过调用getOrig

R语言有多强大?十个你不知道的功能

大数据文摘出品编译:邬亮有些业界从业人士对R语言的价值并不认可,他们认为R语言只针对统计分析。R语言的确提供了很全面的统计分析的软件包,比如CRAN,Bioconductor,Neuroconduct

你不知道的 CSS : Next-generation web styling

最近看了ChromeDevSummit2019大会视频,了解到了很多之前不知道的CSS新特性,挺有意思的。下面我就介绍几个激动人心的特性。特性总览:StickyStickeyStackSticySli

93.7% 的程序员!竟然都不知道 Redis 为什么默认16个数据库?

▍导读在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。椐调查发现:

14个你可能不知道的JavaScript调试技巧

以更快的速度和更高的效率来调试JavaScript熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言JavaScript很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug.文中

科普 | 关于联盟区块链你不知道的事

在分布账本技术发明十年后的今天,我们仍然处于大规模应用落地的早期。目前多数流行的公有区块链仍然无法落地,因此近年来越来越多的技术团队将目光集中在那类有使用场景的方向--联盟区块链。第1部分:行业分类从

你不知道的 Graphql

一起入门Graphql[toc]介绍GraphQL既是一种用于API的查询语言也是一个满足你数据查询的运行时。如何理解呢?GraphQL作为通用的REST架构的替代方案而被开发出来,通俗的讲,在架构中

PHP 开发工程师基础篇 (PHP 数组)

PHP开发工程师基础篇-PHP数组 数组(Array) 数组是PHP中最重要的数据类型,可以说是掌握数组,基本上PHP一大半问题都可以解决.PHP数组与其他编程语言数组概念不一样.其他编程语言数组是由

[郑州] [10K-15K] 美希出行招募 Laravel 开发工程师

薪资等信息薪资:10K-15K(可议) 工作地:郑州 工作时间:朝九晚五,单休 要求和职责如下至少有3年php开发经验 精通Laravel 熟悉Voyager(Laravel第三方可视化管理面板构建器

在美国当工程师有多爽

一名美国程序员以自己五分之一的薪资,把自己的工作外包给中国程序员。这样他啥也不干,就完成工作,还年入20万美元…​​​这事发生在2012年,事情是这样的…主人公是个叫Bob的美国程序员。他40多岁,性

[北京][360] 安全研究院招聘 PHP 服务端开发工程师

[北京][360]安全研究院招聘PHP服务端开发工程师我们是360安全研究院-IoT安全部,360内部一个小而美的团队,致力于IoT安全研究如果你想有一个自由宽松的环境,能安心写代码、研究技术,我们团

PHP 开发工程师基础篇 - PHP 字符串

PHP开发工程师基础篇-PHP字符串字符串(String)字符串是一系列字符的集合.如"abc".在PHP中,一个字符代表一个字节,一个字节(Byte)有8比特(bit).PHP仅支持256字符集,因

41岁阿里工程师:35岁转管理,真的是必经之路吗?

程序员节,也恰恰是我在阿里工作满3年的时候,借此机会盘点一下自己近3年来的工作,也为自己后续发展把把关。个人的眼界和思考总是有限的,特别是对于研究和技术领域来说,知道得越多,其实就会知道自己有多无知,

专访被Facebook开除的中国工程师尹伊:我不后悔那天的决定

作者:纪振宇9月19日,在美国加州刺眼的午后阳光下,38岁的Facebook陈姓中国工程师,从该公司位于加州门罗帕克总部园区的某处办公楼的四层纵身一跃,结束了自己的生命。随后,关于他更多的消息逐渐在网

工程师笔记:我对数据库系统云原生化的一些思考

作者|张敏(于期)阿里云智能高级技术专家划重点我眼中的云原生我认为的云原生关键能力我眼中的云原生化技术手段我对数据库云原生化的思考伴随着云原生技术越来越热门,阿里内部关于CloudNative、Ser

{