关于时间的用法总结

在工作中,经常使用 C# 和 JS 混合编程,当两者时间混用的时候,如果不理解,会遇到各种坑,特此记录下对于时间的理解。

什么是 UTC 时间?

世界协调时间(Coordinated Universal Time)。

生成时间

原生js

new Date() 的参数如下:

1
2
3
4
5
6
7
new Date("month dd,yyyy hh:mm:ss");  
new Date("month dd,yyyy");
new Date("yyyy/MM/dd hh:mm:ss");
new Date("yyyy/MM/dd");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);

moment.js

moment.js 里面的时间转换比较强大,具体可以参考:https://momentjs.com/docs/#/parsing/

moment 转原生 Date

1
moment.toDate()

获取时间戳

原生js

1
2
3
4
5
6
// 1
var timestamp = Date.parse(new Date());
// 2
var timestamp = (new Date()).valueOf();
// 3
var timestamp=new Date().getTime();

moment.js

1
moment().valueOf()

CSharp

1
new DateTimeOffset(fileSystemInfo.LastWriteTimeUtc).ToUnixTimeMilliseconds();

从时间戳中获取时间

1
2
3
4
5
6
7
8
9
// 时间戳为ms
var d = new Date(时间戳)
var day = d.getDay()
var month = d.getMonth() + 1
var year = d.getFullYear()
var hour = d.getHours()
var minute = d.getMinutes()
var second = d.getSeconds()
var milliseconds = d.getMilliseconds()

字符串转时间

moment: https://momentjs.com/docs

1
moment(string)