lizhenqiu blog
最新评论流与站内评论搜索
Comment Stream
最新评论聚合
共 2954 条评论
Current Page
链接聚合
链接标签分页
Latest
评论流
第 10 / 148 页
当前展示 181 - 200 条,共 2954 条评论
js获取本周、本月、本季度、本年开始,结束时间
js中数组的合并和对象的合并
1 数组合并
1.1 concat 方法
1.2 循环遍历
1.3 apply
合并数组arr1和数组arr2,使用Array.prototype.push.apply(arr1,arr2) or arr1.push.apply(arr1,arr2);
2 对象合并
2.1 $.extend()
2.2 遍历赋值
2.3 Obj.assign()
可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
Object.assign(target, ...sources)
2.4 对象的深拷贝和浅拷贝
2.4.1 浅拷贝
2.4.2 深拷贝
js获取本周、本月、本季度、本年开始,结束时间
js数组与字符串的相互转换方法
js获取本周、本月、本季度、本年开始,结束时间
本地Linux CentOS7服务器安装笔记
centos7关闭ipv6
centos7使用ipv6协议,如果出现问题了将会很难排查,所以想要关闭ipv6,该怎么关闭呢?下面我们就来看看详细的教程。
1、使用ifconfig命令查看网卡信息,如果出现inet6 fe80::20c:29ff:fed0:3514,说明机器开启了ipv6
2、编辑/etc/sysctl.conf配置,增加net.ipv6.conf.all.disable_ipv6=1
3、编辑/etc/sysconfig/network配置,增加 NETWORKING_IPV6=no,保存并退出
4、编辑/etc/sysconfig/network-scripts/ifcfg-eno16777736,确保IPV6INIT=no,ifcfg-eno16777736是根据自己机器的,实际网卡信息来看,不是固定的
5、关闭防火墙的开机自启动
systemctl disable ip6tables.service
6、执行sysctl -p或者reboot重启命令
7、再次使用ifconfig进行验证,只剩下ipv4,ipv6消失了,关闭成功
js 删除前confirm确认提示代码
js 数组、对象转json 以及json转 数组、对象
1、JS对象转JSON
方式:JSON.stringify(obj)
2、JS数组转JSON
3、JS对象数组转JSON
4、JSON转JS数组
5、JSON转JS对象
小程序判断一个对象是否为空
ES6 新增的方法 Object.keys():
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
如果我们的对象为空,他会返回一个空数组,如下:
我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。
Mysql8.0及以上 only_full_group_by以及其他关于sql_mode原因报错详细解决方案
联表查询 group by order by desc 不支持排序
Thinkphp6配置使用Workerman WebSocket Socket
php 写入文件,日志记录信息方法
Thinkphp6配置使用Workerman WebSocket Socket
小程序websocket(心跳连接)
websocket连接之后,如果隔一段时间不聊天,运营商会认为你空占网络资源,强行关闭你的websocket连接,
如果想要一直保持连接,就需要监听websocket关闭事件,等关闭时重新连接从而让websocket一直保持连接.
这个过程称为心跳
1、必须要有心跳,如果没有会自动断开连接。
2‘、断开后必须取消setTimeout,不然会继续执行一次。
3、发送消息只有在onSocketOpen后才会发送,所以添加一个消息数组,等连接成功后再发送。
4、如果在还没连接成功时退出连接,会导致无法关闭,所以添加了socketClose来关闭socket
下面是使用方法
js获取本周、本月、本季度、本年开始,结束时间
php 将图片转成base64
PHP保存Base64图片base64_decode的问题
PHP对Base64的支持非常好,有内置的base64_encode与base64_decode负责图片的Base64编码与解码。
编码上,只要将图片流读取到,而后使用base64_encode进行进行编码即可得到。
而解码就略微麻烦一点,究其原因在于把图片编码成base64字符串后,编码内会加入这些字符 data:image/png;base64,本来是用于base64进行识别的。但是如果直接放到php里用base64_decode函数解码会导致最终保存的图片文件格式损坏,而解决方法就是先去掉这一串字符:
js获取本周、本月、本季度、本年开始,结束时间
JS判断是否是微信打开页面
js获取本周、本月、本季度、本年开始,结束时间
js Array vs [],以及是否为空的判断
两者基本相同,唯一不同点在于初始化:
也就是说Array(arg),其中的arg是指生成数组的长度。
参考:What’s the difference between “Array()” and “[]” while declaring a JavaScript array?
检查array是否为空:
js获取本周、本月、本季度、本年开始,结束时间
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
js获取本周、本月、本季度、本年开始,结束时间
PHP获得当日零点时间戳
JavaScript经纬度算距离
PHP根据经纬度,计算2点之间的距离的2种方法
计算地球表面2点之间的球面距离
PHP,Mysql根据经纬度计算距离并排序
网上给出的计算公式是这样的:
Lng1表示A点纬度和经度,Lat2 Lng2 表示B点纬度和经度
a = Lat1 – Lat2为两点纬度之差 b = Lng1 -Lng2 为两点经度之差
6378.137为地球半径,单位为公里
计算出来的结果单位为公里
php根据经纬度排序,根据经纬度筛选距离段
SQL 语句:select location.* from (select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_lat*pi()/180)/2),2)+cos(36.668530*pi()/180)*cos(px_lat*pi()/180)* pow(sin( (117.020359*pi()/180-px_lon*pi()/180)/2),2)))*1000) as distance from bsx_training where (px_state = 1) and (type_id != '') and (((px_lat >= 27.683290277922) and (px_lat <= 45.653769722078)) and ((px_lon >= 105.81826766053) and (px_lon <= 128.22245033947))) order by distance limit 0,10) location where (1=1) and (location.distance <= 500)
先忽略上面这条SQL语句。一一解释
根据SQL排序的SQl语句
这是一个生成根据SQL排序函数代码
接下来下面是设置经纬度范围内的数据
下面算出经纬度范围内的数据控制函数
要实现根据经纬度排序
就直接调用distance_sql(lon1,lat1,lon2,lat2)传入参数 并且as 一个别名例如 as distance, 然后sql语句中 order by 排序 根据 distance排序
如果筛选距离段 1000米-2000米的数据
那就sql语句嵌套sql
select *.loation from (select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_lat*pi()/180)/2),2)+cos(36.668530*pi()/180)*cos(px_lat*pi()/180)* pow(sin( (117.020359*pi()/180-px_lon*pi()/180)/2),2)))*1000) as distance) from table location where (location.distance >= 1000) and (location.distance <= 2000))
如果实现根据最近位置排序sql
select *,round(6378.138*2*asin(sqrt(pow(sin( (36.668530*pi()/180-px_lat*pi()/180)/2),2)+cos(36.668530*pi()/180)*cos(px_lat*pi()/180)* pow(sin( (117.020359*pi()/180-px_lon*pi()/180)/2),2)))*1000) as distance order by distance
VIM快捷键大全
vim全选,全部复制,全部删除
本地Linux CentOS7服务器安装笔记
在CentOS7中彻底关闭IPv6
最根本的解决方法:修改grub,在引导时就不加载IPV6模块
这样,ipv6就彻底关
centos7查看网关
本地Linux CentOS7服务器安装笔记
Linux查看某个用户账号过期信息
设置新用户缺省密码的过期时间
vi /etc/login.defs修改PASS_MAX_DAYS的值即可。值得一提的是,这里的设置只适用于该设置以后新添加的用户,也就是说修改的这个设置将作为新添加用户的缺省设置。
对于系统已存在的账号,使用命令:passwd -x 90 [要修改的账号]
设置某个用户的密码有效期
chage -m 0 -M 90 -W 15 [要设置的用户]
-m:密码可以更改的最小天数。为零代表任何时候都可以更改密码。
-M:密码保持有效的最大天数
-W:在密码过期前15天对用户进行提醒
-E:账号到期的日期,过了这天,此账号将不可用
-d:指定密码最后修改日期
-i:停滞时期,如果一个密码已过期这些天,那么此账号将不可用
-l:列出当前用户设置
查看某个用户的密码状态
chage -l root
Last password change : Jul 09, 2019【最近一次修改密码的时间】
Password expires : never【密码过期时间】
Password inactive : never【密码失效时间】
Account expires : never【账户过期时间】
Minimum number of days between password change : 0【两次改变密码之间相距最小天数】
Maximum number of days between password change : 99999【两次密码改变密码相距最大天数】
Number of days of warning before password expires : 7【密码过期前开始警告的天数】
Password expires和Password inactive区别
Last passwrd change + M天数 = Password expires
Maximum number of days between password chang=M天数
Password expires + I 天数 = Password inactive,看到此时 Password inactive 改成了在 Password expires基础上再加l天
Password expires期限之前,系统会提示你多少天后密码会到期
Password inactive之前登陆,系统会强制你改密码才能登陆,改完密码后Last password change,Password expires,Password inactive 都会根据你改时候的系统日期和相应的M和I的参数改变,改完系统照常进入
总结:密码到期(Password expires)登陆改完还能进系统,密码失效(Password inactive)就得找管理员啦~
Centos7修改用户密码失效时间
vim /etc/login.defs
等保认证--CentOS7设置定期更改密码(密码有效天数)
可以通过
查看用户账号密码有效期等策略
本地Linux CentOS7服务器安装笔记
centos7 holding the yum lock
Mac VM虚拟机centos7环境 Another app iscurrently holding the yum lock;
当输入yum命令后,出现如下错误:
-原因:
yum进程被锁住了,可能是因为上一个yum命令没有执行完,被强制中断了,再一次执行yum命令时,会报这个错误
-解决办法:
执行如下命令,移除yum进程。
本地Linux CentOS7服务器安装笔记
Linux中ping不通外网
在linux中ping www.baidu.com 无法ping通,可能原因是DNS没配置好
方法一:修改
方法二:
方法三:
如果添加了DNS还是无法ping外网,那就要查看路由中的网关设置
这就表示网关没有设置,添加路由网关
再次查看
添加成功,但是这种方法不是永久的,
重启服务器或者重启网卡后悔失效
保存退出,重启网卡验证
解决VMWARE虚拟机中CENTOS 7
报错PING: WWW.XXX.COM: NAME OR SERVICE NOT KNOWN
问题:CentOS 7中无法联网,如下所示:
其他可能由于网络原因造成的报错:
用yum时,报错cannot find a valid baseurl for repobase7x86_64;
以及用git clone时,报错Could not resolve host: github.com; Unknown error等。
3. 问题排查与解决
3.1 检查网络连接设置
使用命令
,如果网络未连接,结果如下:
进一步确认
用
解决办法:输入
,把里面的ONBOOT=no修改为ONBOOT=yes,保存退出。也可以在图形界面找到/etc/sysconfig/network-scripts/ifcfg-ens33进行点击修改,然后保存。
再输入
重启网卡即可。
再ping,发现成功,解决问题。如果问题还在,继续往后看。
3.2 检查网关问题
使用
命令查看网关配置,如果显示如下:
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
说明此时没有配置网关。
解决办法:修改/etc/resolv.conf文件,命令为
,修改为如下内容:
通常虚拟机中cat /etc/resolv.conf默认是:
,再ping,
centos7 name or service not known
centos7配置IP
使用 ip addr命令查看查看网卡名和是否有网络,获知网卡名为ens33
输入
,修改ifcfg-ens33配置文件
输入systemctl restart network重启网络服务,使修改的配置文件生效
配置centos7的IP、子网掩码、网关
设置DNS地址
CentOS 7 ISO 镜像下载
1、官网下载地址: https://www.centos.org/download/
具体镜像地址: http://isoredirect.centos.org/centos/7/isos/x86_64/
2、选择阿里云站点进行下载 http://mirrors.aliyun.com/centos/7/isos/x86_64/
各个版本的ISO镜像文件说明:
CentOS-7-x86_64-DVD-1708.iso 标准安装版(推荐)
CentOS-7-x86_64-Everything-1708.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)
CentOS-7-x86_64-LiveGNOME-1708.iso GNOME桌面版
CentOS-7-x86_64-LiveKDE-1708.iso KDE桌面版
CentOS-7-x86_64-Minimal-1708.iso 精简版,自带的软件最少
CentOS-7-x86_64-NetInstall-1708.iso 网络安装版(从网络安装或者救援系统)
制作启动盘
国内下载源和版本选择
选择 DVD 这个下载就可以了
使用UltraISO软碟通制作启动盘
然后就会加载很多的文件夹(如果加载不出来就是软碟通的版本问题)
写入U盘,建议先格式化
设置为U盘为默认启动项后,电脑会进入下面这个页面
选中Install CentOS Linux 7,按e(有些事按Tab)进入编辑模式后,在屏幕的最下面会出现当前运行的脚本命令
JavaScript经纬度算距离
这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的
假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈
就叫作“赤道”。在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”;构成这些圆圈的线段,
叫做纬线。我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬。
北极就是北纬90度,南极就是南纬90度。纬度的高低也标志着气候的冷热,如赤道和低纬度地地区无冬,
两极和高纬度地区无夏,中纬度地区四季分明。
其次,从北极点到南极点,可以画出许多南北方向的与地球赤道垂直的大圆圈,这叫作“经圈”;构成这
些圆圈的线段,就叫经线。公元1884平面坐标图年,国际上规定以通过英国伦敦近郊的格林尼治天文台的
经线作为计算经度的起点,即经度零度零分零秒,也称“本初子午线”。在它东面的为东经,共180度;
在它西面的为西经,共180度。因为地球是圆的,所以东经180度和西经180度的经线是同一条经线。各国
公定180度经线为“国际日期变更线”。为了避免同一地区使用两个不同的日期,国际日期变线在遇陆地时
略有偏离。
每一经度和纬度还可以再细分为60分,每一分再分为60秒以及秒的小数。利用经纬线,我们就可以确定
地球上每一个地方的具体位置,并且把它在地图或地球仪上表示出来。例如问北京的经纬度是多少?我们
很容易从地图上查出来是东经116度24分,北纬39度54分。在大海中航行的船只,只要把所在地的经度测
出来,就可以确定船在海洋中的位置和前进方向。 纬度共有90度。赤道为0度,向两极排列,圈子越小,
度数越大。
横线是纬度,竖线是经度。
当然可以计算,四元二次方程。
经度和纬度都是一种角度。经度是个两面角,是两个经线平面的夹角。因所有经线都是一样长,为了度量
经度选取一个起点面,经1884年国际会议协商,决定以通过英国伦敦近郊、泰晤士河南岸的格林尼治皇家
天文台(旧址)的一台主要子午仪十字丝的那条经线为起始经线,称为本初子午线。本初子午线平面是起
点面,终点面是本地经线平面。某一点的经度,就是该点所在的经线平面与本初子午线平面间的夹角。在
赤道上度量,自本初子午线平面作为起点面,分别往东往西度量,往东量值称为东经度,往西量值称为西
经度。由此可见,一地的经度是该地对于本初子午线的方向和角距离。本初子午线是0°经度,东经度的最
大值为180°,西经度的最大值为180°,东、西经180°经线是同一根经线,因此不分东经或西经,而统称
180°经线。
纬度是个线面角。起点面是赤道平面,线是本地的地面法线。所谓法线,即垂直于参考扁球体表面的线。
某地的纬度就是该地的法线与赤道平面之间的夹角。纬度在本地经线上度量,由赤道向南、北度量,向北
量值称为北纬度,向南量值称为南纬度。由此可见,一地的纬度是该地对于赤道的方向和角距离。赤道是
0°纬线,北纬度的最大值为90°,即北极点;南纬度的最大值为90°,即南极点。
经纬度互换
度(DDD):E 108.90593度 N 34.21630度
如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将108.90593整数位不变取108(度),用0.90593*60=54.3558,取整数位54(分),0.3558*60=21.348再取整数位21(秒),故转化为108度54分21秒.
同样将度分秒(DMS):东经E 108度54分22.2秒 换算成度(DDD)的方法如下:108度54分22.2秒=108+(54/60)+(22.2/3600)=108.90616度
因为计算时小数位保留的原因,导致正反计算存在一定误差,但误差影响不是很大。1秒的误差就是几米的样子。GPS车友可以用上述方法换算成自己需要的单位坐标。
经纬度换算成米
纬度分为60分,每一分再分为60秒以及秒的小数。
纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。有相同特定纬度的所有位置都在同一个纬线上。
赤道的纬度为0°,将行星平分为南半球和北半球。
纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。
赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。
纬度1秒的长度
地球的子午线总长度大约40008km。平均:
纬度1度 = 大约111km
纬度1分 = 大约1.85km
纬度1秒 = 大约30.9m
根据地球上任意两点的经纬度计算两点间的距离
地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。如果以0度经线为基 准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。设第一点A的经 纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90- Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。那么根据三角推导,可以得到计算两点距离的如下公式:
C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)
Distance = R*Arccos(C)*Pi/180
这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile
如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲具有应用意义)的处理,那么公式将是:
C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)
Distance = R*Arccos(C)*Pi/180
以上通过简单的三角变换就可以推出。
如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:
C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
Distance = R*Arccos(C)*Pi/180
也就是:
C = sin(LatA/57.2958)*sin(LatB/57.2958) + cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)
Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.758349716768*Arccos(C) mile
在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然 后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所 计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。