JavaScript 日期增加一天

JavaScript 日期增加需要考虑夏令时的问题。如果处在有夏令时的时区,会出现以下的问题。 https://stackoverflow.com/a/9989458 var a = new Date("2013-03-10T00:00:00.000Z"); a.setDate(a.getDate() + 1); a.toISOString(); //is "2013-03-10T23:00:00.000Z". 增加日期后,发现还是在2013-03-10 。 因为Date的构造函数解析日期字符串的行为在不同浏览器之间不一定一致。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date 注意: 由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。 对 ISO 8601 格式的支持中,仅有日期的串 (例如 “1970-01-01”) 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。 如果只是需要取日期,可以使用UTC时间。 date = date.setUTCDate(date.getUTCDate()+1); 或者,直接用年月日构造日期。 date = new Date(year, monthIndex, day) new Date(year, monthIndex, day+1) //自己分别解析年月日 ……

阅读全文

docker和iptables

docker在映射端口的时候,会自动修改iptables直接开放端口,自己设置的规则就没有作用。有时候我们希望外网不能直接访问。 通常情况下,不允许外网访问端口的设置 iptables -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport {端口号} -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport {端口号} -j REJECT 在docker端口映射设置之后,先查看一下修改的规则。 iptables -L DOCKER -n --line-number 修改规则阻止外网访问。 iptables -R DOCKER 1 -p tcp -m tcp -s 127.0.0.1/32 --dport {端口号} -j ACCEPT 恢复允许访问 iptables -R DOCKER 1 -p tcp --dport 3000 -j ACCEPT 参考: https://segmentfault.com/q/1010000000215159……

阅读全文

在mocha测试中使用Promise函数

在mocha测试中使用Promise函数 可以在function前使用async关键字 const initFn = () => { return new Promise(resolve => { message.init().then(()=>resolve()); }) } describe('message test', async function () { await initFn(); it('promise test', function (done) { yourpromisefunction().then(response => { console.log(response); done(); }) .catch(err => { console.log("error:",err) done(err); }) .catch(done); }) run(); } 运行mocha时要添加–delay参数,测试代码中需要添加run(),不然函数运行完不进行接下来的测试。 https://mochajs.org/#delayed-root-suite mocha --delay --recursive ./test/unit/*.test.js 一些mocha的例子: https://gist.github.com/haroldtreen/5f1055eee5fcf01da3e0e15b8ec86bf6 如果需要在整个测试前运行可以参考下方链接: https://stackoverflow.com/a/41874640……

阅读全文

hyper-v网络设置

内部网络 nat 设置 虚拟网络交换机选项,选择内部网络 在主机器中设置网络,控制面板>网络和Internet>网络连接,找到刚刚新建的vEthernet。设置ip地址。 在主机的网络中设置共享。网络连接中选择刚才新建的虚拟网卡。 虚拟机设置 添加网络适配器硬件,如果是win7等老的操作系统,只能设置旧版网络适配器,不然无法联网。 虚拟机中设置静态ip地址,前24位网络地址要和之前虚拟网络交换机设置的一样。 ……

阅读全文

configuration of webstorm for typescript

Create Project Create a new node project. Here is reference of project structure. https://github.com/jan-molak/debugging-typescript-with-webstorm add package.json, tsconfig.json, and src folder. tsconfig.json { "compilerOptions": { "declaration": true, "target": "es6", "module": "commonjs", "moduleResolution": "node", "noImplicitAny": true, "outDir": "./dist", "preserveConstEnums": true, "removeComments": false, "sourceMap": true, "inlineSources": true, "typeRoots" : ["./node_modules/@types"], "lib": [ "es6" ] }, "include": [ "src/**/*", "test/**/*" ], "exclude": [ "node_modules" ] } package.json { "name": "test", "version": "1.0.0", "description": "", "main": ".……

阅读全文

express.js with typescript

express.js with typescript reference: https://github.com/microsoft/TypeScript-Node-Starter First, initialize the project install packages npm install express npm install @types/express --save-dev If you meet a problem, TypeError: (0 , express_1.default) is not a function. add “esModuleInterop”: true to compilerOptions in tsconfig.json TS1259: Module '"F:/test/project/express-ts/node_modules/@types/express/index"' can only be default-imported using the 'esModuleInterop' flag https://stackoverflow.com/a/34520891 import express = require(‘express’) import express from ‘express’; ……

阅读全文

firefox设置网页不使用黑夜模式

浏览github的时候,到了晚上不登录的话就会是黑夜模式。时间久了对眼睛不好,所以想调整成不要变成黑夜模式。目前用了一个不是很直接的办法,修改了firefox的设置。 按照下面链接的方法。 https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#view_media_rules_for_prefers-color-scheme 输入地址栏中about:config,设置privacy.resistFingerprinting为true。 ……

阅读全文

用sharelist挂载onedrive

用sharelist挂载onedrive sharelist地址:https://github.com/reruin/sharelist 首先安装sharelist。使用docker比较方便。按照文档上面一条命令。https://reruin.github.io/sharelist/docs/#/zh-cn/ docker run -d -v /etc/sharelist:/sharelist/cache -p 33001:33001 --name="sharelist" reruin/sharelist 初始化的步骤也是按照文档。https://reruin.github.io/sharelist/docs/#/zh-cn/initialize 分别输入口令,标题和虚拟路径。 挂载onedrive 设置微软帐号 登录https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview 找到App registrations 新注册一个App。 填写名字和重定向的域名,比如https://list.yourdomainname.com 由于微软的新的安全策略,无HTTPS的网站无法直接被指定为回调地址,因此回调地址可使用中转地址:https://reruin.github.io/redirect/onedrive.html 记录Application (client) ID 和 Client credentials里面的value。一定要保存下来,之后就看不到secret id了。 具体情况如下图: app id: secret id: 设置sharelist 如果要挂载onedrive,选择OD API版,留空(只输入/),然后会跳转到挂载向导。 如果已经挂载过其他目录,可以回到列表页面刷新,能看到多个文件夹,选中要挂载的那个文件夹,就会到向导页面。 在向导中填入之前获得的app id和secret id即可。 ……

阅读全文

用stow管理配置文件

https://www.gnu.org/software/stow/ stow 可以在你设置的目录下自动创建链接到相对应的目录 mkdir dotfiles #创建目录 stow --dir=/root/dotfiles #设置路径 以.bashrc为例 mv ~/.bashrc ~/dotfiles/bash/.bashrc stow bash 建立的对应目录的位置应该在自己名字的文件夹下面,路径位置跟$HOME的相对路径一样 /root/dotfiles/bash/.bashrc /root/.bashrc tree -a . ├── bash └── .bashrc ……

阅读全文

javascript中new Date()生成日期的问题

d = new Date('2000-01-01') output: Fri Dec 31 1999 19:00:00 GMT-0500 (Eastern Standard Time) d.getYear() 99 d.getMonth() 11 d.getDate() 31 因为时区的问题,显示的时间会跟要存储的时间差一天 加上具体时间" 00:00:00.000",直接生成的是当地时间。 d.getYear() 100 d.getMonth() 0 d.getDate() 1 d.getFullYear() 2000 ……

阅读全文