JavaScript 日期计算问题

姚洪楼 发表于 学习备忘录 分类,标签:
0

要计算指定日期至今已经经过的天数,以2015.01.22为例,从网上找来了下面这段代码:

<script language="javascript">
var now=new Date();
var spday=new Date(2015,01-1,22);
a=(now.getTime()-spday.getTime())/(24*60*60*1000);
a=Math.ceil(a);
document.write(a);
</script>

那么问题来了,第三行括号里面的中间那段“-1”是什么意思呢? (去掉“-1”或改成别的数字,都会出错)

 

在w3school找了一圈相关函数的解释都没能找到答案,于是直接在 http://www.w3school.com.cn/tiy/t.asp 进行测试:

<script type="text/javascript">
var spday=new Date(2014,02-1,10);
document.write(spday);
</script>

然后修改“-1”这个数值,改来改去结果不断变化,并且没有发现任何规律!

 

百度谷歌都没找到答案,后来问朋友,总算得到答案了:

(date.getMonth()+1)  //取月的时候取的是当前月-1如果想取当前月+1就可以了

 

参考w3school的Date对象方法:http://www.w3school.com.cn/jsref/jsref_obj_date.asp

getMonth()   //从Date对象返回月份 (0 ~ 11)

而我这里要做的是将月份返回给Date,所以过程是相反的,所以自然要减去1……

CentOS架设VPN

姚洪楼 发表于 学习备忘录 分类,标签: ,
0

50元包月50M的联通宽带价格是挺爽的,下载东西啥的也蛮爽的,唯独晚高峰浏览网页的时候不够顺畅,这个应该是苏州联通与电信之间的网络瓶颈造成的,恰好最近将创宇云的VPS升级到5M带宽了,于是就尝试着走VPS中转一下。(VPS的线路是BGP的,对联通对电信速度都蛮快的)

网上有很多现成的搭建VPN的脚本,我搭建的过程如下:

#wget http://www.hi-vps.com/shell/vpn_centos6.sh
#chmod a+x vpn_centos6.sh
#bash vpn_centos6.sh

执行安装之后会有三个选项,分别是:1安装、2修复、3添加用户,选择1然后等待脚本跑完,会出现vpn账号密码,这个直接就可以用了。不过建议修改下DNS,因为脚本默认的是Google的,经常会受到GFW的影响。

修改DNS的命令如下:(我这里用的114DNS&AliDNS,亦可换成其它的公众DNS)

#vi /etc/ppp/options.pptpd
ms-dns 114.114.114.114
ms-dns 223.5.5.5

如果要修改或添加账号,命令如下:(每行一个账号,分别为:用户名、VPN服务类型、密码、IP地址)

#vi /etc/ppp/chap-secrets
yaohonglou pptpd password *    (*的意思是自动获取地址)

通过vpn感觉许多网站的访问速度都变快了,效果还是很不错的!(不过下载东西的时候还是直连比较好,因为走vpn的话就等于变成5M宽带了,浏览网页啥的5M已经足够了所以要追求顺畅,下载或看在线视频啥的肯定还是50M的给力)

万网X3型虚拟主机的在线发信问题

姚洪楼 发表于 学习备忘录 分类,标签:
0

之前使用的是万网M2-S空间,200M网页空间,20M数据库空间,20G月流量,还配备独立IP地址(万网被阿里巴巴收购之后好像取消了独立IP,对于旧产品的独立IP是否保留尚不清楚) 在代理商那边购买的价格约在100出头一年。

自从万网被阿里巴巴收购并入到阿里云旗下,其产品价格也是大幅下降,除了域名降到了平民价格并且开放了自由转出,虚拟主机也是推出了廉价的X3跟X5型号,于是M2-S到期之后我就直接选择了X3,省去了要找代理商续费的麻烦。X3主机是150M网页空间,20M数据库空间,8G月流量,对于我这样的小博客来说是足够了!(空间目前只用了60M,数据库目前只用了6M不到,流量的话2014全年每月都在3G以下,因为我只放了基本数据,图片啥的都放在另外的VPS上面)

 

博客转移到X3之后,发现一个问题:博客的自动备份功能没用了! (安装了 WordPress Database Backup 插件,每天会自动备份两次数据库并发到我的电子邮箱)

既然邮箱没收到备份文件,于是到wordpress后台手动备份一次看看,发现备份过程是很顺利的,但是最后一步发送邮件的时候提示:exec() has been disabled for security reasons

怀疑是exec函数问题,于是通过探针检查了被禁函数,发现确实包含exec,于是联系万网客服,我说我的X3主机无法在线发信,可能是exec函数被禁问题,之前是用的M2-S,则是可以发信的,结果客服告诉我exec函数是禁用的,包括M2-S

于是我在M2-S上传了探针,然后把被禁函数复制到Notepad++ 用 compare 对比X3的被禁函数,发现两者的被禁函数是完全一致的(只是顺序有略微差异) 然后使用探针上面的发信功能测试了下,发现X3的不可以发,M2-S的可以发。

尝试通过安装第三方smtp插件解决问题,结果提示:stream_socket_client() has been disabled for security reasons  看样子应该是 stream_socket_client 函数被禁的问题了!

 

继续联系客服询问在线发信的问题,客服告知说X3主机需要您使用fsockopen函数进行发信,代码可参考:

http://help.www.net.cn/knowledge_detail.htm?knowledgeId=5868351

 

通过测试,我终于明白了:

1、X3是使用的精简版的系统,没有sendmail组件,所以无法直接发信。

2、使用第三方smtp发信失败,是因为X3禁用了 stream_socket_client 函数。

 

既然客服说是支持 fsockopen 函数发信的,所以解决方案如下:

1、到云主机后台php.ini设置启用 fsockopen 函数  (默认是禁用的)

2、对 wp-includes/class-smtp.php 文件做如下修改:

找到如下代码:

$this->smtp_conn = @stream_socket_client( $host . ":" . $port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context );

将其替换为:

$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);

然后第三方smtp插件就可以用了,我使用的是 Configure SMTP,配置如下:

 

以前的发信如下: (注意发件人,是主机代发的,可能会被某些邮箱当成垃圾邮件 )

 

现在的发信如下:(注意发件人,属于smtp服务器认证的)

 

昨晚设置好的,今天检查备份邮箱,发现早上自动备份的邮件也恢复正常了:

 

请注意:现在wordpress可能会强制更新的,可以登陆后查询更新页面是否有“您使用的WordPress是最新版本。 将来的安全更新将被自动安装” 这段话,如果有,需要修改 wp-config.php 添加如下语句来关闭自动更新:

define( ‘WP_AUTO_UPDATE_CORE’, false );

如果不关闭自动更新,更新后 wp-includes/class-smtp.php 会被覆盖成原始版本的! 所以最好是手动更新,更新后立即修改 wp-includes/class-smtp.php,避免在自己不知情的情况下被自动更新导致发信功能故障!

win8.1 开机自动同步时间

姚洪楼 发表于 学习备忘录 分类,
0

老家电脑不知咋的关机后时钟就不走了,比如10:20关机,下午16:30开机,那么时间就是10:20….  第一反应就是主板电池的问题,但是更换了电池之后问题依旧没有解决….

于是就琢磨着搞个开机同步时间的软件吧,我只需要每次开机同步就可以了不需要常驻内存持续工作,找来找去还真不太好找,最终找到了bjtime.cn提供的一款软件:http://bjtime.cn/info/view.asp?id=159

win8 需要使用管理员身份打开,否则软件没有权限同步本机时间;一般情况下可以右击选择管理员身份打开,但考虑到这软件要经常使用所以就直接在其属性勾选“以管理员身份证运行此程序”,然后打开软件勾选“自动校准”“自动启动”

但是问题来了…..  软件设置的自动启动根本不起作用!

于是我将其创建一个快递方式,当到win8的启动文件夹…..  结果开启依旧无法自动启动!

通过测试我发现勾选管理员权限运行的话,开机无法自动启动;不勾选管理员权限的话,开机虽然可以启动,但无法自动校准时间!

 

于是就尝试着是否可以通过bat的方式来启动?首先,我将时间校对软件改名为 time.exe  放到D盘下面,勾选“以管理员身份证运行此程序”;然后写一个bat文件,内容如下:

@echo off
echo 1、正在同步北京时间。。。
echo 2、时间同步即将完成。。。
echo 3、请关闭时间校对窗口。。。
D:\time.exe

将这个bat文件命名为 time.bat 放到D盘下面,然后创建一个快捷方式,放置到win8启动项目录:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

然后重启电脑,最终测试这个方法是成功的!

变相的Cellular版iPad

姚洪楼 发表于 没事瞎折腾 分类,标签:
0

就网络使用来说,iPad有两种版本,一种是WLAN版,简单的说就是仅使用Wi-Fi连接网络,另外一种是Cellular版,简单的说就是在WLAN的基础上加上了插卡模块可以像手机那样通过3G或4G信号直接上网,但是Cellular版的价格大概要贵出900元人民币,所以大部分人选择的都是WLAN版本。

Cellular版本其实就是多了个随处可以上网的功能(另外WLAN版的没有GPS模块,因为常理说来Wi-Fi基本是固定位置的所以这个版本的iPad无需导航等操作) 这个事情其实可以通过iPhone去解决,今天从老家来苏州,路程好几个小时,于是拿出手机来切身试验了一下这个方案的稳定性。

首先,iPhone要打开Wi-Fi跟3G数据,然后进入设置:

进入“个人热点”,启用它(密码一定要设置复杂点,要不然被人家蹭网的话,用的可都是手机流量,价格贵的很)

然后,iPad通过Wi-Fi连接到iPhone即可 (连接后Wi-Fi信号处的图标是两个环,表示热点连接,不要奇怪喔!)

我使用这个办法看了半个多小时的QQ朋友圈,没有发现掉线等情况,相当的稳定!所以有iPad的朋友在外出时如需使用不妨试一下上面的方法,但是千万要注意流量!(理论上安卓也可以,不过安卓手机种类太多了,我没测试)

.cda文件转录MP3的问题

姚洪楼 发表于 学习备忘录 分类,
0

CD文件里面的.cda文件可以直接使用系统自带的 Windows Media Player 进行转录 (必须直接转录,不可复制.cad出来之后再转录,因为.cad其实只是信息文件并不包括音频的)

Windows Media Player 的设置如下:

 

我第一次搞忘记选格式了,转录后得到了一堆wma文件,无法导入iPhone….. 第二次搞,又出现Windows Media Player 不允许我再次翻录该CD的情况,如下图所示:

找了半天没找到如何处理(不得不说 Windows Media Player 的菜单实在是太难用了)最终只能试着恢复一下相关设置才得以解决问题(工具>高级>还原媒体库),感觉windows自带的东西真心不好用,IE也是个很好的例子!

bat调用shutdown的问题

姚洪楼 发表于 学习备忘录 分类,标签: ,
0

TeamViewer是个好东西,一直用它来远程操作电脑,不管是手机还是平板都很给力。但是最近更新了版本之后,出现了远程关机后壁纸不恢复的问题,具体情况是:远程的时候,TeamViewer会删除被控电脑的壁纸使用全黑背景以提升连接速度,断开连接的时候被控电脑会恢复原来的壁纸,但是如果远程关机的话被控电脑则直接关机并不恢复原有壁纸 (以前都是先恢复原有壁纸然后才关机的,所以猜测可能是近期的版本出现了BUG)

最近我都是手动输入 shutdown –s –t 60 然后断开连接,但是感觉很麻烦,于是就琢磨着直接在桌面放一个关机脚本,想要关机的时候直接远程双击这个脚本,然后断开TeamViewer的连接。直接打开记事本,输入如下内容:

shutdown –s –t 60

然后另存文件名为“shutdown.bat” 保存类型选择“所有文件” 结果打开之后无限循环…… 上网查了资料才发现是自己犯了一个很低级的错误:系统执行命令的时候会优先调用本目录的文件,不存在的话才会调用系统的shutdown文件!

所以,解决方法有两个:将bat文件重命名 或 在bat文件中使用绝对地址。

ITV无线方案

姚洪楼 发表于 学习备忘录 分类,标签: , , ,
0

同事安装了800包年的宽带+ITV,但是购买的ITV机顶盒跟电信免费提供的光猫都不带无线功能,而他家里客厅也没有预留网线,所以要么拉明线、要么走无线。

上淘宝看了看,得到如下讯息:

有机顶盒专用的USB无线网卡 (现在的ITV机顶盒一般都带USB接口)

有与USB无线网卡对应的无线AP  (如果是无线猫则可以不用无线AP)

但我们手头的这个高清机顶盒型号是 中兴ZXV10 B700V5,淘宝商家说V5版本的是新产品,他们的无线网卡暂时还不支持厂家正在研发中,必须要V4或者更前面版本的B700才可以……

 

于是就琢磨着自己动手设计方案了。现在电信的新猫已经都是有线的了(如果安装师傅带的旧猫,可能会是无线猫) 所以我要想办法先将猫这边的信号发出来,然后再在ITV机顶盒这边接收信号。我预想的方案如下:

使用两个无线路由器通过WDS进行连接,路由器的型号是水星的MW150R跟MW155R (一个新的一个旧的,两者价格都为50左右) MW150R的LAN口接猫的ITV口,SSID设置为001,MW155R的LAN口接ITV机顶盒的网口,MW155R在无线基本设置中勾选WDS功能,然后扫描一下会得到许多周边的无线信号,选择SSID为001的这个连接即可。 (MW150R需要设置为指定信道,不能设置为自动)

我使用电脑进行测试,我的电脑通过网线连接MW155R,MW155R通过WDS连接到MW150R,MR150R连接到交换机,两个无线路由器的IP设置在192.168.6.*,我的电脑继续保持在192.168.1.*网段 (原先是直接连接到交换机上网,现在将电脑到交换机这间通过两个无线路由器连接)  通过测试,此方案靠谱且稳定,试了半天并没有发现掉线等情况,同时我也进行了速度测试,以确保速度能够满足ITV的需求,我从交换机上其它电脑抓了一个2G的文件,速度如下:

这个速度是完全可以满足ITV需求的,所以剩下的问题就是ITV是否也支持这种组网传输方式? (我不清楚ITV的协议是否跟传统的双绞线局域网相同)  最终测试结果还是很满意的,ITV完全可以支持这种方式进行通讯!

 

===============

延伸阅读:

1、WDS其实是等于将两个路由器的LAN口通过无线连接起来,所以路由器LAN口的IP地址可以随便设置,只要不冲突就可以了,比如一个设置192.168.6.* 一个设置192.168.8.* 电脑跟网关设置192.168.0.* (不过设置的时候,电脑需要保持与待设置的路由器LAN口在同一个网段)

2、还有一种技术叫WISP,这种技术可以理解为WAN口使用无线接入,两个路由器使用WISP连接之后,他们将会是两个局域网,进行WISP连接的路由器再主路由器的下级子网。

WDS跟WISP的区别可以这样来理解:比如ADSL拨号上网,通过WDS连接,进行WDS连接的路由器需要拨号才可上网,通过WISP连接,进行WISP连接的路由器无法拨号,只能作为主路由的下级子网。(AP与WDS的区别在于:WDS是两者对等关系,而AP是主从关系)

WDCP 启用停用问题

姚洪楼 发表于 学习备忘录 分类,标签:
0

近期WDCP似乎有漏洞了,许多用户反应服务器被入侵者恶意利用,为防止意外,建议不用的时候将其关闭,要用的时候再将其开启,用完之后立即关闭!

启动命令 service wdapache start

停止命令 service wdapache stop

另外,使用LNMP一键安装包也是个不错的选择,不过平常管理操作的时候要手动输命令,这个有点麻烦。如果依旧坚持使用WDCP,请务必修改面板端口号、修改管理密码、平时停用WDCP服务!(请注意:本文并非是说WDCP不好,只是带面板的话被入侵的概率会加大很多,这个是没办法的事情,所以我依旧认为WDCP是很不错的管理面板)

无线鼠标更换电池后没有反应了….

姚洪楼 发表于 没事瞎折腾 分类,
0

无线鼠标没电了,于是更换电池,结果发生两件事情:

1、原鼠标的电池漏液了,弹簧片上面脏了

2、没有新电池了,只有旧的南孚电池

于是拿面纸擦拭了下鼠标电池仓的弹簧片,然后装上旧南孚电池试试看,结果鼠标依旧没有反应,于是判断电池没电了,就等买回新电池再说。

几个小时后,不经意间发现透过鼠标前段可以看到红光了(才装电视的时候是没有的,重新擦拭弹簧片重新安装电池试了两三次也没有红光),但是当时有事情所以也没有去测试到底怎么个情况。

拿到新电池,这个时候鼠标依旧没有红光出来了。于是我更换新电池测试,结果没有红光,鼠标也没有任何反应…. 又换了别的机器上面的电池测试(怀疑是不是新买的电池有质量问题) 结果鼠标依旧没任何反应,所以判断是鼠标出故障了。

又拿东西擦拭弹簧片,结果弄闹弄去还是不行…. 然后想着是不是对码出现问题了,于是尝试着重新对码,结果接收器压根就搜索不到鼠标…. 联想前面突然看到的红光,顿时大悟,那尼玛不就是回光返照嘛!所以,得买新鼠标了….

拿到新鼠标之后,准备扔掉旧鼠标,扔之前又做了最后一次测试,不行的话就直接扔掉。我上网找了一下有没有类似情况的网友,结果发现还真有,看了一些答案大多都是胡乱回答的,但是看到这条回答我觉得有点靠谱:

http://zhidao.baidu.com/question/435392094.html

兄弟,我是从事修电脑的,你说的这个故障可能是你电池与簧片接触不良,当然先换下电池,然后正常安装后,来回转动电脑,记得首先看一下与电池接触的簧片是否松动或者氧化,用细砂布擦一下,然后再照我说的做,因为你说的是一直好好的,突然这样了,所以我的方法应该解决问题,试试看,祝你成功。

于是抱着试试看的心情找了把美工刀划了划鼠标电池仓的弹簧片的接触点,然后再装上电池,然后鼠标真的好了….. 果然是弹簧片接触点表面氧化导致断路了!