yuminge-app/yun-min-program-plugin-master/utils/dateutils.js

355 lines
8.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
/**
* 时间戳转化为年 月 日 时 分 秒
* number: 传入时间戳
* format返回格式支持自定义但参数必须与formateArr里保持一致
*/
function formatTime(number, format) {
var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
var returnArr = [];
var date = new Date(number * 1000);
returnArr.push(date.getFullYear());
returnArr.push(formatNumber(date.getMonth() + 1));
returnArr.push(formatNumber(date.getDate()));
returnArr.push(formatNumber(date.getHours()));
returnArr.push(formatNumber(date.getMinutes()));
returnArr.push(formatNumber(date.getSeconds()));
for (var i in returnArr) {
format = format.replace(formateArr[i], returnArr[i]);
}
return format;
}
/**
* 时间戳转化为年 月 日 时 分 秒
* number: 传入时间戳
* format返回格式支持自定义但参数必须与formateArr里保持一致
*/
function formatLongTime(longTime, format) {
var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
var returnArr = [];
var date = new Date();
date.setTime(longTime);
returnArr.push(date.getFullYear());
returnArr.push(formatNumber(date.getMonth() + 1));
returnArr.push(formatNumber(date.getDate()));
returnArr.push(formatNumber(date.getHours()));
returnArr.push(formatNumber(date.getMinutes()));
returnArr.push(formatNumber(date.getSeconds()));
for (var i in returnArr) {
format = format.replace(formateArr[i], returnArr[i]);
}
return format;
}
const getTimeStamp = function(){
var date = new Date();
var timestamp = date.getTime();
return timestamp;
}
//ymd YYYY-MM-DD
const getTimeStampFromYearMonthDay = function (ymd, spliter) {
var str =ymd;
// 转换日期格式
str = str.replace(/spliter/g, '/'); // "2010/08/01";
// 创建日期对象
var date = new Date(str);
date.setDate(date.getDate());
var timestamp = date.getTime()-8*60*60*1000;
return timestamp;
}
const getCurrentYearMonthDayTimeStamp = function () {
let cDate= new Date();
var str = `${cDate.getFullYear()}/${cDate.getMonth()+1}/${cDate.getDate()}`;
// 创建日期对象
var date = new Date(str);
date.setDate(date.getDate());
var timestamp = date.getTime() - 8 * 60 * 60 * 1000;
return timestamp;
}
const getYear = function (longTime) {
var date = new Date();
date.setTime(longTime);
const year = date.getFullYear()
return year
}
const getMonth = function (longTime) {
var date = new Date();
date.setTime(longTime);
const month = date.getMonth() + 1
return month
}
const getDay = function (longTime) {
var date = new Date();
date.setTime(longTime);
const day = date.getDate()
return day
}
const getHour = function (longTime) {
var date = new Date();
date.setTime(longTime);
const hour = date.getHours()
return hour
}
const getMinute = function (longTime) {
var date = new Date();
date.setTime(longTime);
const minute = date.getMinutes()
return minute
}
const getSecond = function (longTime) {
var date = new Date();
date.setTime(longTime);
const second = date.getSeconds()
return second
}
//month 从1开始
function getDaysOfMonthInYear(year,month) {
let days = [31, 28, 31,30,31,30,31,31,30,31,30,31]
if ((year % 4 === 0) && (year % 100 !== 0 || year % 400 === 0)) {
days[1] = 29
}
return days[month-1];
}
//month 从1开始
function getDaysOfMonth(year,month) {
let days = new Date(year, month, 0).getDate();
return days;
}
const formatYearMonthDay = function (longTime, spliter) {
var date = new Date();
date.setTime(longTime);
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join(spliter)
}
const formatHourMinite = function (longTime, spliter) {
var date = new Date();
date.setTime(longTime);
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [hour, minute].map(formatNumber).join(spliter)
}
function getWeekStartDateByLongDate(timeStamp) {
var time = new Date();
time.setTime(timeStamp);
var nowYear = time.getFullYear();
var nowMonth = time.getMonth();
var nowDay = time.getDate();
var nowDayOfWeek = time.getDay();
var date = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
return Date.parse(date)
// return formatDate(new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1));
}
function getWeekEndDateByLongDatedate(timeStamp) {
var time = new Date();
time.setTime(timeStamp);
var nowYear = time.getFullYear();
var nowMonth = time.getMonth();
var nowDay = time.getDate();
var nowDayOfWeek = time.getDay();
var date = new Date(nowYear, nowMonth, nowDay + (8 - nowDayOfWeek));
return Date.parse(date)
// return formatDate(new Date(nowYear, nowMonth, nowDay +(8 - nowDayOfWeek)));
}
function getWeekStartDate() {
var nowYear = new Date().getFullYear();
var nowMonth = new Date().getMonth();
var nowDay = new Date().getDate();
var nowDayOfWeek = new Date().getDay();
var date = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
return Date.parse(date)
// return formatDate(new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1));
}
function getWeekEndDate() {
var nowYear = new Date().getFullYear();
var nowMonth = new Date().getMonth();
var nowDay = new Date().getDate();
var nowDayOfWeek = new Date().getDay();
var date = new Date(nowYear, nowMonth, nowDay + (8 - nowDayOfWeek));
return Date.parse(date)
// return formatDate(new Date(nowYear, nowMonth, nowDay +(8 - nowDayOfWeek)));
}
function formatDate(date) {
let myyear = date.getFullYear();
let mymonth = date.getMonth() + 1;
let myweekday = date.getDate();
return [myyear, mymonth, myweekday].map(formatNumber).join('-');
}
function formatStringToNumber(n) {
n = n.toString();
if(n.length>=2){
if (n[0]=='0'){
return n.substr(1);
}else{
return n;
}
}else{
return n;
}
}
//汉字的日期和时间转成long时间
const getLongTimeWithDateAndTime = function (date, dateSpliter, time, timeSpliter){
var timeStamp = 0;
timeStamp = getTimeStampFromYearMonthDay(date, dateSpliter);
if (time){
var tA = time.split(timeSpliter);
if(tA.length==2){
var hour = tA[0];
var h = formatStringToNumber(hour);
timeStamp+=h*60*60*1000;
var minu = tA[1];
var m = formatStringToNumber(minu);
timeStamp += m * 60 * 1000;
}
}
return timeStamp;
}
// function getDates(days, todate = getCurrentMonthFirst()) {//todate默认参数是当前日期可以传入对应时间
// var dateArry = [];
// for (var i = 0; i < days; i++) {
// var dateObj = dateLater(todate, i);
// dateArry.push(dateObj)
// }
// return dateArry;
// }
/**
* 传入时间后几天
* param传入时间dates:"2018-04-02",later:往后多少天
*/
function dateLater(dates, later) {
let dateObj = {};
let show_day = new Array('周日', '周一', '周二', '周三', '周四', '周五', '周六');
let date = new Date(dates);
date.setDate(date.getDate() + later);
let day = date.getDay();
dateObj.year = date.getFullYear();
dateObj.month = ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1);
dateObj.day = (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate());
dateObj.week = show_day[day];
return dateObj;
}
function getCurrentMonthFirst() {
var date = new Date();
var todate = date.getFullYear() + "-" + ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1) + "-" + (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate());
return todate;
}
module.exports = {
formatTime: formatTime,
formatLongTime: formatLongTime,
getTimeStamp: getTimeStamp,
formatYearMonthDay: formatYearMonthDay,
formatHourMinite: formatHourMinite,
getTimeStampFromYearMonthDay: getTimeStampFromYearMonthDay,
getWeekStartDate: getWeekStartDate,
formatDate: formatDate,
getWeekEndDate: getWeekEndDate,
getLongTimeWithDateAndTime: getLongTimeWithDateAndTime,
getYear: getYear,
getMonth:getMonth,
getDay:getDay,
getHour:getHour,
getMinute: getMinute,
getSecond: getSecond,
// getDates: getDates,
dateLater: dateLater,
getWeekStartDateByLongDate: getWeekStartDateByLongDate,
getWeekEndDateByLongDatedate: getWeekEndDateByLongDatedate,
getCurrentYearMonthDayTimeStamp: getCurrentYearMonthDayTimeStamp,
getDaysOfMonthInYear,
getDaysOfMonth
}