整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript-日期

JavaScript-日期

et val;

const today=new Date();

let birthday=new Date('9-11-1988')

birthday=new Date('September 8 1988');

birthday=new Date('9/15/1989');

val=birthday;

val=today.getMonth()+1;//8

val=today.getDate(); //18

val=today.getDay(); //星期日 用0;

val=today.getFullYear();//2019

val=today.getHours(); //21

val=today.getMinutes();//10

val=today.getSeconds();//11

val=today.getMilliseconds();//192

val=today.getTime();//1566133929402

birthday.setMonth(2);

birthday.setDate(12);

birthday.setFullYear(1994);

birthday.setHours(18);

birthday.setMinutes(20);

birthday.setSeconds(25);

//console.log(val);

console.log(birthday); //Sat Mar 12 1994 18:20:25 GMT+0800 (中国标准时间)

datefns为浏览器中操作JavaScript日期提供了最全面、最简单、最一致的工具集,并且可以在node.js中使用!常见的类似的库还有moment.js和day.js!





Github

https://github.com/date-fns/date-fns

特性

  • 模块化

只是用需要使用的功能,可以很好地与webpack, Browserify, 或者 Rollup集成

  • 原生日期

date-fns不会重新造轮子,而是使用现有的本机类型。此外,出于安全考虑,它不会扩展核心对象。date-fns中的函数可以正常工作,在某些情况下会遵循ECMAScript行为。

  • 纯函数

date-fns是使用纯函数构建的,并且始终返回新的日期实例,而不是更改传递的实例。这有助于防止错误并避免长时间的调试会话。

  • 支持Typescript和Flow

date-fns支持FlowTypeScript

  • 国际化

支持几十种语言,当然包括了简体中文,只有当你需要使用的时候才会包括进来

  • 一致性

它总是返回同一时区中的日期,不管传递的是时间戳、字符串还是日期对象。该API经过定制,具有可预测的名称和参数顺序。

  • 可靠性

datefns尊重时区和夏时制。它遵循语义版本控制,因此始终向后兼容。每个构建CI在大约400个时区检查超过650000个示例

  • 简单

最好的API是不存在API。对于date fns,你总是有一个函数可以做一件事。并且总是有一个单一的方法来解决问题。

  • 性能好

除了体积小之外,date-fns速度很快。

  • 详细的文档

每个函数都有一个详细的例子说明。由于JSDoc注释,文档可以在线(在网站上)和离线访问。




示例

  • 格式化
import { format, formatDistance, formatRelative, subDays } from 'date-fns'

format(new Date(), "'Today is a' iiii")
//=> "Today is a Thursday"

formatDistance(subDays(new Date(), 3), new Date())
//=> "3 days ago"

formatRelative(subDays(new Date(), 3), new Date())
//=> "last Friday at 7:26 p.m."
  • 国际化
import { formatRelative, subDays } from 'date-fns'
import { es, ru } from 'date-fns/locale'

formatRelative(subDays(new Date(), 3), new Date())
//=> "last Friday at 7:26 p.m."

formatRelative(subDays(new Date(), 3), new Date(), { locale: es })
//=> "el viernes pasado a las 19:26"

formatRelative(subDays(new Date(), 3), new Date(), { locale: ru })
//=> "в прошлую пятницу в 19:26"
  • 日常使用
import { addYears, formatWithOptions, toUpper } from 'date-fns/fp'
import { eo } from 'date-fns/locale'

const addFiveYears=addYears(5)

const dateToString=formatWithOptions({ locale: eo }, 'D MMMM YYYY')

const dates=[
  new Date(2017, 0, 1),
  new Date(2017, 1, 11),
  new Date(2017, 6, 2)
]

const toUpper=arg=> String(arg).toUpperCase()

const formattedDates=dates.map(addFiveYears).map(dateToString).map(toUpper)
//=> ['1 JANUARO 2022', '11 FEBRUARO 2022', '2 JULIO 2022']

总结

不论是moment.js或者day.js亦或是datefns都是JavaScript中处理日期非常好的库,也避免了很多日期处理中的很多问题!

期获取方法

获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):

getTime() 方法

getTime() 方法返回自 1970 年 1 月 1 日以来的毫秒数:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getTime()</h2>
<p>JavaScript 中的内部时钟从 1970 年 1 月 1 日午夜开始计算。</p>
<p>getTime() 函数返回从那时起的毫秒数:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getTime();
</script>
</body>
</html>


getFullYear() 方法

getFullYear() 方法以四位数字形式返回日期年份

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getFullYear()</h2>
<p>getFullYear() 方法返回日期的完整年:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getFullYear();
</script>
</body>
</html>

getMonth() 方法

getMonth() 以数字(0-11)返回日期的月份:

在 JavaScript 中,第一个月(1 月)是月号 0,因此 12 月返回月号 11。

您可以使用名称数组,并使用 getMonth() 将月份作为名称返回:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getMonth()</h2>
<p>getMonth()方法以 0 到 11 之间的数字返回日期的月份。</p>
<p>要获得正确的月份,您必须添加 1:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getMonth() + 1;
</script>
</body>
</html>

getDate() 方法

getDate() 方法以数字(1-31)返回日期的日:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDate()</h2>
<p>getDate() 方法以数字(1-31)返回日期的日:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getDate();
</script>
</body>
</html>

getHours() 方法

getHours() 方法以数字(0-23)返回日期的小时数:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getHours()</h2>
<p>getHours() 方法以数字(0-23)返回日期的小时:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getHours();
</script>
</body>
</html>

getDay() 方法

getDay() 方法以数字(0-6)返回日期的星期名(weekday):

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript getDay()</h2>
<p>getDay() 方法将周名作为数字返回:</p>
<p id="demo"></p>
<script>
var d=new Date();
document.getElementById("demo").innerHTML=d.getDay();
</script>
</body>
</html>

在 JavaScript 中,一周的第一天(0)表示“星期日”,即使世界上的一些国家认为的第一天是“星期一”。

您可以使用名称数组,并使用 getDay() 将星期名作为名称返回: