JavaScript 日期计算问题

Poon 发表于 学习备忘录 分类,标签:
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

Poon 发表于 学习备忘录 分类,标签: ,
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型虚拟主机的在线发信问题

Poon 发表于 学习备忘录 分类,标签:
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 开机自动同步时间

Poon 发表于 学习备忘录 分类,
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

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

.cda文件转录MP3的问题

Poon 发表于 学习备忘录 分类,
0

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

Windows Media Player 的设置如下:

 

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

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

bat调用shutdown的问题

Poon 发表于 学习备忘录 分类,标签: ,
0

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

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

shutdown –s –t 60

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

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

ITV无线方案

Poon 发表于 学习备忘录 分类,标签: , , ,
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 启用停用问题

Poon 发表于 学习备忘录 分类,标签:
0

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

启动命令 service wdapache start

停止命令 service wdapache stop

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

CentOS双网卡配置

Poon 发表于 学习备忘录 分类,标签:
0

之前有记录过CentOS双网卡的简单配置:https://www.mpyes.com/2014.04.29/14:22:01

今天尝试着配置了双网卡并且指定出网走的网关,两块网卡分别是:211.157.190.202(公网IP,网关211.157.190.201)192.168.0.2(内网IP,网关192.168.0.1)CentOS主动使用网络从192.168.0.1这个网关出去,两块网卡的配置如下:

#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:22:46:0C:12:02
TYPE=Ethernet
UUID=196b3212-512a-4188-a8cf-48834a44e0e8
ONBOOT=YES
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=211.157.190.202
NETMASK=255.255.255.252
GATEWAY=211.157.190.201
DNS1=114.114.114.119
DNS2=223.5.5.5

 

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=00:22:46:0C:12:01
TYPE=Ethernet
UUID=2009100c-7086-4309-9071-408259d20a79
ONBOOT=YES
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.119
DNS2=223.5.5.5

 

然后设置CentOS的默认网关为 192.168.0.1

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mpyes.com
GATEWAY=192.168.0.1

 

这个时候出现一个很奇怪的问题:192.168.0.2可以ping通,211.157.190.202无法ping通(211.157.190.202所有端口都无法连接,处于离线状态)

重复检查网络配置,重启网络服务,重启整个系统,N次,都没有解决问题;上网找了许多资料,看得云里雾里的,感觉自己的配置都是对的,但搞不懂为什么就是不行;请教会Linux的朋友,折腾来折腾去最终也没有定论,看来Linux双网卡配置真是个冷门问题…..

晚上又想了想,应该是方向搞错了,网络配置是很简单的,既然确认多次都没有问题,那么就肯定是别的地方出了问题,接着上网找资料,最终终于找到了问题所在,原来是要手动添加路由表,设置哪个网卡来的数据还从哪个网卡返回!

# vi /etc/iproute2/rt_tables  添加如下内容:
251     net2
252     net3

 

# vi /etc/rc.local  添加如下内容:(注意网关跟IP的顺序,不可写反喔)

ip route flush table net2
ip route add default via 211.157.190.201 dev eth0 src 211.157.190.202 table net2
ip rule add from 211.157.190.202 table net2

ip route flush table net3
ip route add default via 192.168.0.1 dev eth1 src 192.168.0.2 table net3
ip rule add from 192.168.0.2 table net3

然后reboot一下就搞定啦!

 

最后还有几点补充:

1、网上大多都是双网卡合并成一根线,以及单网卡设置多IP的教程,容易造成混淆,务必看仔细了!

2、搜索这些相对专业的资料,已经多次使用百度无果,然后通过Google成功找到相关资料。

3、无法使用Google的朋友可以参考7号下午4点多的文章。

4、现在晚上回家很少开电脑了,今天开了感觉挺充实的。

Poon 发表于 学习备忘录 分类,
0

网上看到一篇新闻在列举名称的时候用了“等”这个字,然后评论下面开始嘲讽记者的语文知识差….. 先是有人提出质疑,然后有人跟帖说他如果经常看政府文件就会觉得“等”这个词语是官府专用的错别字了没什么好稀奇的,然后有人在下面跟帖说其实不管名称是列举全部还部分都可以用“等”来结尾不信的话可以翻阅词典,然后又有人跟帖说全部列举应该用“等”未全部列举应该用“等等”………

几年前我有注意过这个字的用法,印象中不管是否列举完毕都可以用“等”这个字的,介于如上所述情况我觉得第四个人应该查过字典才给出的答案,所以也有一定的可信度,于是我就翻阅字典查阅到底标准答案是什么,结果如下:

可见,其实第三个人说的是对的。真搞不懂第四个人是怎么想的,第三个人都说了不信可以查字典,结果他并没去查字典却还很肯定的坚持自己脑海中记忆的错误解释,误导自己也误导别人….. 对待汉字,真不应该有这样的态度啊!