javascript生成指定日期和指定格式时间

有时候想获取一个时间,时间有格式,想生成自己想要的格式,或者自己输入一个时间按指定的格式给输出

1: new Date()

var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-???)
myDate.getMonth(); //获取当前月份(0-11,0代表1月) // 所以获取当前月份是myDate.getMonth()+1;
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

在这里插入图片描述

操作日期
在这里插入图片描述
注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

在下面的例子中,我们将日期对象设置为 5 天后的日期:
在这里插入图片描述

传入时间并按指定格式输出

function dateTime2str(dateTime, format) {
var z = {
y: dateTime.getFullYear(),
M: dateTime.getMonth() + 1,
d: dateTime.getDate(),
h: dateTime.getHours(),
m: dateTime.getMinutes(),
s: dateTime.getSeconds()
};
return format.replace(/(y+|M+|d+|h+|m+|s+)/g, function(v) {
return ((v.length > 1 ? “0” : “”) + eval(‘z.’ + v.slice(-1))).slice(-(v.length > 2 ? v.length : 2))
});
}
dateTime2str(new Date(),“yyyy-MM-dd hh:mm:ss”)

在这里插入图片描述
解读:
这里使用一个replace方法,format.replace,对“yyyy-MM-dd hh:mm:ss” .replace()处理
在这里插入图片描述
在这里插入图片描述
/(y+|M+|d+|h+|m+|s+)/g 正则表达式 : n+ 表示匹配(字符n 1次或者多次),| 表示或 ;所以这个表达式,会去匹配1个或多个y后,轮询往下匹配其他字符

首先匹配 y,进行修改替换,之后M
replace((regexp/substr,replacement)当第二个参数为函数时表示处理文本的函数
上面例子中:

function(v) {return ((v.length>1?“0”:"")+eval(‘z.’+v.slice(-1))).slice(-(v.length>2?v.length:2))})

是 匿名函数
根据/(y+|M+|d+|h+|m+|s+)/g 首次匹配到’yyyy’,传给匿名函数处理
v.length>1 为真,所以取0
eval(‘z.’+v.slice(-1)) —> eval(‘z.’+‘yyyy’.slice(-1))—> eval(z.y)
z.y 对应上面的数据
按上面的例子来讲:这里算出来就是 ‘02018’
之后:‘02018’.slice(-(‘yyyy’.length>2?‘yyyy’.length:2)) 等于 ‘02018’.slice(-4)
在这里插入图片描述
从倒数第4位开始取 ,算下来 等于 2018
OK,年份就取取来了,接下来就是去匹配M了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要以日期时间格式生成编号,你可以使用 JavaScript 来获取当前日期时间,并将其作为编号的一部分。以下是一个示例代码: ```html <!DOCTYPE html> <html> <head> <title>生成日期时间编号</title> <script> function generateNumber() { var date = new Date(); // 获取当前日期时间 var number = document.getElementById("number"); // 用于显示生成的编号 var year = date.getFullYear(); // 获取年份 var month = date.getMonth() + 1; // 获取月份(注意月份是从 0 开始的,需要加 1) var day = date.getDate(); // 获取日期 var hour = date.getHours(); // 获取小时 var minute = date.getMinutes(); // 获取分钟 var second = date.getSeconds(); // 获取秒钟 // 将日期时间格式化为指定格式(例如:2022-01-01 12:34:56) var formattedNumber = year + "-" + pad(month) + "-" + pad(day) + " " + pad(hour) + ":" + pad(minute) + ":" + pad(second); number.innerHTML = formattedNumber; // 显示生成的编号 } function pad(number) { return (number < 10 ? "0" : "") + number; // 将数字补齐为两位数(例如:2 -> 02) } </script> </head> <body> <h1>生成日期时间编号</h1> <button onclick="generateNumber()">生成</button> <p id="number"></p> <!-- 用于显示生成的编号 --> </body> </html> ``` 这段代码创建了一个简单的 HTML 页面,点击 "生成" 按钮后,会生成当前的日期时间编号,并在页面上显示出来。编号的格式为 "年份-月份-日期 小时:分钟:秒钟"。 注意:这只是一个示例,你可以根据自己的需求进行修改和扩展。如果需要更复杂的日期时间格式,请参考 JavaScript日期时间处理相关文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值