CodeSky 代码之空

随手记录自己的学习过程

归档时间:2016-01

JavaScript JSON stringify格式化Date不正确

2016-01-09 12:46分类: JavaScript评论: 7

有同学问了我一个很特殊的需求,他需要格式化date为json格式,可是结果却不正确。

我们来试一把:

1new Date();
2// Sat Jan 09 2016 12:34:05 GMT+0800 (CST)
3JSON.stringify(new Date());
4// "\"2016-01-09T04:34:28.242Z\""
5

看上去确实不一样——不过我们能看到,差8个小时,不就是GMT(UTC)的标准时间跟我们的区别么?

也就是说,JSON.stringify会默认转换时间,解决的方案在stackoverflow也有:

1x = new Date();
2x.setHours(x.getHours() - x.getTimezoneOffset() / 60);
3

这样能够还原成UTC,就完全一致了。

当然,最好的自然还是使用时间戳啦:

1Date.parse(new Date());
2(new Date()).valueOf();
3new Date().getTime()
4

其中:第一种获取的时间戳是把毫秒改成000显示,第二种和第三种是获取了当前毫秒的时间戳。

当然,没有想到什么特殊的需求需要用客户端获取时间给服务端……

另外,JSON.stringify以前竟然不知道,孤陋寡闻了。

最后想说的是,json没有标准时间格式这一说,在json.org中也有说明关于json的数据(value)类型。

参考:

阅读更多 →

PHP 使用curl获取网页内容

2016-01-09 12:04分类: PHP评论: 1

在上一篇文章中,我们试图获取Bing的壁纸,但是却发现它虽然是个标准的json,但不支持跨域,响应头没有:Access-Control-Allow-Origin: *

上一次用curl还是刚学PHP的时候复制粘贴的,现在感受深多了,看得懂到底是怎么回事了,不过我们的需求也比上次简单多了,上次是缓存图片到本地,而这次我们只要把内容输出就可以了。

1$ch = curl_init();
2
3curl_setopt($ch, CURLOPT_URL, "http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1");
4curl_setopt($ch, CURLOPT_HEADER, 0);
5$out = curl_exec($ch);
6
7curl_close($ch);
8
阅读更多 →

jQuery 初试jsonp

2016-01-08 23:39分类: JavaScript评论: 3

说来惭愧,写了这么久的前端(大概),还没有使用过jsonp(后来我发现假期用Angular+Rails使用过。。。http://codesky.me/archives/rails-solve-cross-query.wind),这次在微博中,一个好友遇到了一个需要跨域的问题,那么机会来了。

我第一反应就是jsonp,尽管他说不可以,然而我还是想要试试看。

用最顺手的jQuery吧,话虽如此,jQuery也快忘了。

阅读更多 →

Git Permission denied (publickey)解决方案

2016-01-02 23:23分类: Other评论: 0

听说SSH连接方式比HTTPS快的我准备改成SSH方式连接github,结果马上就非常果断的报了个错。

一查,果然是在逗我:

我们需要生成一个公钥:

 ssh-keygen -t rsa -C "[email protected]"

上面填入你的邮箱地址。

接下来查看公钥,如果你是Mac,则在以下路径,没有关系,上面那步会显示保存路径的:

cat /Users/$USER/.ssh/id_rsa.pub

接下来我们测试连接:

如果显示:

Hi foo! You've successfully authenticated, but GitHub does not provide shell access.

接下来我们就能正常构建了。

阅读更多 →
共 4 篇文章,1 页