js日期格式化yyyy-MM-dd问题

 更新时间:2023年01月21日 09:39:17   作者:sunsineq  
这篇文章主要介绍了js日期格式化yyyy-MM-dd问题,具有很好的参考价值,希望对大家大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

js日期格式化yyyy-MM-dd

方法一

function formatDate(date) {
console.log(date);
// date = new Date();
date = new Date(Date.parse(date.replace(/-/g, "/"))); //转换成Data();
console.log(date);
var y = date.getFullYear();
console.log(y);
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}

方法二

Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}

方法二调用:

new Date(addtime).format("yyyy-MM-dd");   //addtime这个是时间字符

yyyy-MM-dd和YYYY-MM-dd格式化日期的区别你知道吗?

这里yyyy-MM-dd对于年份取值取得是当天所在的这个年份

而YYYY-MM-dd它所取的年份是本周所在的这个年份

这里我们就要注意一个问题

如果我们所格式化的这个日期它所在的周是一个跨年周的话 , 那么这里所取的年份就是第二年的年

接下来我们找一个case验证一下:

通过查看日历我们可以看到2021年12月31号它所在的周是一个跨年周

它这周开始于21年12月26号,结束于22年1月2号

接下来我们来演示一下

首先看代码我们分别创建了yyyy和YYYY两种日期格式化

然后生成了12月31号的这个日期

然后分别用这两种格式化对这两种日期进行输出

出大问题了

通过输出可以看到YYYY输出的日期是2022年,yyyy输出的日期是2021年

这就是它们两个的区别

在平时的开发中尤其对于会员啊,投放啊这种日期敏感型的场景,一定避免使用YYYY这种日期敏感型格式,避免造成不必要的线上故障

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用JS调用工控机(Windows)虚拟键盘

    使用JS调用工控机(Windows)虚拟键盘

    在工控机触摸屏中,通过浏览器web端进行表单输入,当聚焦表单输入框并不会出现虚拟键盘进行输入,本文介绍将给大家介绍如何通过js调用工控机(Windows)虚拟键盘,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • uni-app开发微信小程序遇到的部分踩坑实战

    uni-app开发微信小程序遇到的部分踩坑实战

    最近在用uni-app开发微信小程序,这里将开发中遇到的坑和问题记录一下,所以下面这篇文章主要给大家介绍了关于uni-app开发微信小程序遇到的部分踩坑,需要的朋友可以参考下
    2023-02-02
  • JS实现从顶部下拉显示的带动画QQ客服特效代码

    JS实现从顶部下拉显示的带动画QQ客服特效代码

    这篇文章主要介绍了JS实现从顶部下拉显示的带动画QQ客服特效代码,可实现弹性缓冲效果的弹出QQ客服窗口的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 原生js开发的日历插件

    原生js开发的日历插件

    本文主要分享了原生js开发的日历插件的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • JS用最简单的方法实现四舍五入

    JS用最简单的方法实现四舍五入

    在本篇文章里小编给大家整理的是关于JS用最简单的方法实现四舍五入的实例内容,需要的朋友们学习下。
    2019-08-08
  • JS对象类型之Error错误对象的用法详解

    JS对象类型之Error错误对象的用法详解

    error对象是JavaScript的原生对象,当程序解析和运行过程中发生了错误,JS引擎就会自动产生并抛出一个error对象的实例,并且程序会终止在错误发生的地方,本文给大家介绍了JS Error错误对象的用法,需要的朋友可以参考下
    2024-04-04
  • 固定表格行列(expression)在IE下适用

    固定表格行列(expression)在IE下适用

    本文为大家介绍下使用expression固定表格行列,这是一种在IE下适用的固定行列的方法,感兴趣的朋友可以学习下,希望对大家有所帮助
    2013-07-07
  • javascript中使用正则计算中文长度的例子

    javascript中使用正则计算中文长度的例子

    这篇文章主要介绍了javascript中使用正则计算中文长度的例子,需要的朋友可以参考下
    2014-04-04
  • js中如何复制一个数组(浅复制、深复制)

    js中如何复制一个数组(浅复制、深复制)

    这篇文章主要介绍了js中如何复制一个数组(浅复制、深复制)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论