别误会,标题并不是让你写个代码整出个超高配送费来养活自己,这肯定是违法的。

我只是想说,接单的时候如果看到千万级别的配送费,别急着接单,冷静分析其原理,找出bug并上报平台,说不定就能成功转行当程序员,走上升职加薪996的福报道路了。

事情是这样的啊,近几天班主任在网上冲浪的时候,看到了这么一件事:

“外卖骑手获1500多万元配送费又被撤销,饿了么回应:系统故障”

1500多万的配送费?难道这就是最近同行纷纷转行送外卖的真正原因?!

点进去一瞅,大概是这么一回事:

7月21日的下午,南京饿了么骑手谢先生,接到一笔配送费高达1590多万的订单,将信将疑的将单子送到目的地后,发现这笔“天价”送单费,已经汇入到了他的个人账户中。

但不到一小时,他再查看自己的账户时发现,这一千多万配送费已经被饿了么撤销了。对此,饿了么南京地区相关负责人回应称,出现天价配送费的原因是,系统出现了故障,我们已经做出了整改,避免类似问题发生。

原来是一个小bug引起的大起大落,看了这件事,网友们除了在为谢先生打抱不平以外,还有不少人在讨论这个bug是怎么来的,不愧是全民编程的时代啊。

事实上这个bug涉及的知识非常基础,只要稍微学过一段时间的编程,无论学的是Python还是Java或是其他什么语言,只要对“时间戳”这个知识非常熟悉,那么就能一眼看出饿了么的问题所在。

159531386是什么神秘数字?

在饿了么里有些订单可能会因为过于偏僻,导致无人愿意接单,这个时候发单人就可以通过增加小费,加价等形式吸引骑手接单。

所以有人就开始怀疑,会不会是发单人想加小费,却误错输成手机号了呢?

的确有这一种可能,但恰巧班主任在前些天就用了时间戳写了点东西,所以对159531386这一串数字的大小十分敏感。

今天是8月3日,大前天是2020/7/31,对应的秒数时间戳就是1596124800,如果把159531386加个0,变成1595313860,这1596124800到1595313860的差值,目测似乎也差不多符合2020/7/31到2020/7/21(新闻发生时间)的秒数。

因此写一行代码,直接把1595313860转换一下,得到结果是……

那么我们再来看看这个新闻,7月21日下午发生,谢先生的接单时间也恰好为14:44分!

数字完全符合,在计算机的世界里可没有那么巧合的事情,那么,结果就显而易见了。

系统在派单的时候,误把订单此时的时间戳作为特殊奖励设置进了订单内,于是就产生了这么一个天价订单!

时间戳是啥?

时间戳是指格林威治时间1970年01月01日00时00分00秒(也就是北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

上面的分析里,“目测1596124800到1595313860的差值,差不多符合2020/7/31到2020/7/21的秒数。”也就是这么来的。

在编程的世界里,我们记录时间通常都不会直接写XXXX年X月X日X分X秒,而是都用时间戳来记录时间。

或许小萌新们会有些疑惑,为什么写代码不好好说人话?2020/07/21,这不是很好懂吗,为什么要用这个长长晕晕的时间戳呢?

这是因为在现在的系统中经常遇到跨数据库的应用开发,不同的数据库对时间类型可能有着不同解释,比如ORACLE的date和MYSQL里面的date就不能直接兼容转换,数据方面还可以使用数据迁移工具进行转换,但是对与应用来说那就是灾难。

用更生动形象的例子来说,可以这么想象,小O是个美国机器人,写时间的时候喜欢把日期写在前面,年份写在后面,也就是07/21/2020,不认得其他格式,小M是个日本机器人,写日期的时候喜欢先写年份,那就是2020/07/21,也不认得其他格式。

而有一天考试考了一道时间相关的题目,小M叫小O发答案给他“参考”一下……

所以,为了让大家都能看得懂时间,不考虑格式这些乱七八糟的东西,所以大家规定了UNIX时间戳这个东西。

将需要记录的时间记录为UNIX时间戳,不同数据库在用时间的时候,只需要对时间戳进行操作就可以了。

把时间戳转换为具体时间的代码,也就是本次破译配送费事件的关键代码,其实也非常简单,一行就搞定了。

在极客战记里面,大家一般学的都是Python和JavaScript,所以这儿就教教大家,怎么用Python和JavaScript来转换时间戳。

时间戳转换日期

Python代码如下:

import time

print(time.ctime(1595313860))

比较简单,要先导入一个时间处理用的包time,然后就可以用它的函数来转换时间戳了。

这里只用到了一个函数,time.ctime(),它的作用就是接收一个时间戳,并把它转换成日期。

效果如下:

Python还需要导包,JavaScript就可以直接一行代码搞定。

代码如下:

console.log(new Date(1595313860000))

结果是这样的,同学们可以直接在浏览器内按F12,然后点击Console来输入代码并回车运行查看效果。

console.log()和刚刚的print()相似,都是输出内容用的,转换时间戳主要是new Date(1595313860000)这一段代码。

new大家都知道,是创建一个对象,那么这里就是创建了一个Date对象,这是JavaScript里用于处理日期和时间的对象,并用时间戳1595313860000作为它的值,创建了这么一个时间对象,它被输出的时候会展示成一个比较通俗易懂的通用格式,因此输出它就能看到具体的日期时间了。

这里用1595313860000而不是1595313860,是因为Date对象默认接收的时间戳是以毫秒为单位的,所以就得多加三个0。

上面这两种代码,都是直接调用函数来查看时间戳具体时间的方法,除了这样,我们也可以不依赖函数,直接利用时间戳的原理来进行转换。

时间戳,也就是从北京时间1970年01月01日08时00分00秒到现在的秒数,所以可以直接将1595313860转换成秒钟、分钟、天数,然后加到1970年01月01日08时00分00秒里,得到最终得结果。

思路就是这样,这就属于自己动手造轮子的问题啦,难倒不难,同学们可以自己动动手,造一造试试看!

如果看官您觉得我说的还不错,那能不能给我在下方点个赞点个喜欢呢?

球球您们辣,这个对我真的很重要!

这是一个想让你学编程开心点的“营销号”哦,如果想看一些编程类的干货,或者想听听编程学习相关的良心话,那不妨给我点个关注吧~

mysql 1500万_1500万的天价配送费?懂这行代码的人送外卖永远不会吃亏!相关推荐

  1. 千元喜茶订单配送费仅5元为乌龙事件,外卖小哥称自己看错了

    本文转载自IT之家,IT之家 3 月 2 日消息 近日,一美团外卖小哥吐槽称,配送近 1000 块钱的喜茶订单配送费仅有 5 元.美团回应称配送费是系统根据距离计算的,这种情况可以申请大额订单补贴. ...

  2. 万进制——蓝桥杯|ACM 大数阶乘——21行代码AC

    浅谈进制思想: 日常生活中我们习惯用十进制去运算: 为了方便电脑识别开发出了二进制,又因为2^3=8 , 2^4=16,因此应运而生了八进制与16进制. 世上本没有路,走的人多了,也便成了路,那么既然 ...

  3. 骑手送外卖获奖1500多万后又遭撤销,网友:人生大起大落不过如此

    大起大落!获奖1500多万又被撤销!近日,一外卖小哥送一单路途较远的外卖,竟被奖励1500多万元,可是不到一小时又被撤销了,怎么回事呢? 据媒体报道,21日下午,南京"饿了么"平台 ...

  4. 送外卖优先级_送外卖,真的能月入过万?跟外卖小哥聊完后,才知道真实情况...

    凌晨点了一份外卖,外卖小哥在大雨中骑着电车准时送达,看着这一幕我不由的心酸了. 如今,外卖已经成为很多人生活中不可或缺的一部分,既方便又省时间.无论是在炎炎夏日,还是在风雨交加的黑夜,外卖小哥都穿着制 ...

  5. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)

    mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...

  6. mysql 数字 除以 一万_腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据...

    腾讯股票接口: 大单数据 http://stock.finance.qq.com/sstock/list/view/dadan.php?t=js&c=sz002451&max=80&a ...

  7. 如何从900万张图片中对600类照片进行分类,附代码

    作者 | Aleksey Bilogur 译者 | 风车云马 责编 | Jane 出品 | AI科技大本营(公众号id:rgznai100) [导语]完成一个简单的端到端的机器学习模型需要几步?在本文 ...

  8. 真实骑手数据:73万大学毕业生在送外卖?

    导读:所以到底是多少人嘞? 作者:朱小五 来源:凹凸数据(ID:alltodata) 01 外卖骑手,困在系统 最近,人物杂志的一篇文章<外卖骑手,困在系统里>在微博疯转,在朋友圈刷屏. ...

  9. 真实骑手数据:73万大学毕业生在送外卖

    作者:朱小五 外卖骑手,困在系统 最近,人物杂志的一篇文章<外卖骑手,困在系统里>在微博疯转,在朋友圈刷屏. 两大外卖平台相继作出回应:饿了么表示将尽快发布"多等5分钟或10分钟 ...

最新文章

  1. 亿级数据湖统一存储技术实践
  2. 详细讲解设计LOGO思维方式和方法【转】
  3. Python 赋值、浅拷贝、深拷贝的区别?
  4. List中toArray()的使用方法
  5. 困难时拉你一把的图片_2019早上好表情图片合集 早晨祝福语动画
  6. 使用Linq时出现Row not found or changed. Linq 找不到行或行已更改的解决办法
  7. python标准库说明_Python标准库详细介绍与基本使用方式,超详细!
  8. CSS基础--属性设置
  9. VLAN隔离技术 — MUX VLAN
  10. c++游戏服务器方向需要多少功底?
  11. 明尼苏达量表结果分析_MMPI明尼苏达多项人格心理测试量表结果分析
  12. 巴比特 | 元宇宙每日必读:企业如何将业务转移到元宇宙?这7大步骤了解一下...
  13. ThinkPHP6 excel 导出功能完整实现
  14. 微信之父张小龙:怎样做简单的产品经理?八
  15. 串口通信--两台PC机之间的简单传输
  16. Java 编程思想 读书笔记
  17. 使用jmeter并发测试下载功能
  18. 初次使用SpiderMonkey
  19. 教你快速清除桌面图标阴影的痕迹【免费xp系统下载】
  20. 解决Xubuntu任务栏(Panel)消失的问题

热门文章

  1. 盒子鱼 android4.2.2,BOXFiSH盒子鱼家长
  2. @vaild权限校验框架配合java正则表达式
  3. 【UVM基础】UVM 的 build_phase 执行顺序
  4. uni-app第三方sdk集成
  5. 理解实时音视频聊天中的延时问题一篇就够
  6. 51单片机数字时钟套件 DIY散件
  7. index.php.bak 颓废_18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
  8. Matlab验证码识别
  9. java8 新特性 ibm_【Java8新特性】Streams(流)
  10. 09Apache POI学习笔记