📄 dt_param.js
字号:
// TDC is to get DateTime format info for current locale
function TDC() {
var d=new Date(1970,0,0,0,0,0,0),d2=new Date(d),s1,s2,api=-1;
d.setHours(10); d2.setHours(11);
s1=d.toLocaleString(); s2=d2.toLocaleString();
this.displayHour=(s1!=s2);
d.setHours(0); d2.setHours(0);
d.setMinutes(10); d2.setMinutes(11);
this.displayMinute=(d.toLocaleString()!=d2.toLocaleString());
d.setMinutes(0); d2.setMinutes(0);
d.setSeconds(10); d2.setSeconds(11);
this.displaySecond=(d.toLocaleString()!=d2.toLocaleString());
d.setSeconds(0); d2.setSeconds(0);
if (this.displayHour) {
for (i=0; i<((s1.length<s2.length)?s1.length:s2.length); i++) {
if (s1.charAt(i)!=s2.charAt(i)) {
api=i-1; break;
}
}
d.setHours(11); d2.setHours(23);
s1=d.toLocaleString(); s2=d2.toLocaleString();
this.twelveHourClock=(s1.substring(api,api+2)==s2.substring(api,api+2));
this.displayAMPM=(s1!=s2);
d.setHours(0); d2.setHours(0);
d.setHours(9); d2.setHours(11);
this.hourLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
d.setHours(0); d2.setHours(0);
} else {
this.twelveHourClock=false;
this.displayAMPM=false;
this.hourLeadZero=false;
}
if (this.displayMinute) {
d.setMinutes(9); d2.setMinutes(11);
this.minuteLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
d.setMinutes(0); d2.setMinutes(0);
} else
this.minuteLeadZero=false;
if (this.displaySecond) {
d.setSeconds(9); d2.setSeconds(11);
this.secondLeadZero=(d.toLocaleString().length==d2.toLocaleString().length);
d.setSeconds(0); d2.setSeconds(0);
} else
this.secondLeadZero=false;
}
var TD = new TDC();
// create time editables, hour dropdown, minute dropdown, second dropdown, and am/pm dropdown
function CreateTimeEditables(paramName, postFix, enabled, cssClass, style, hour, minute, second)
{
var properties = "";
if (!enabled)
{
properties += " disabled='disabled' ";
}
if (cssClass.length != 0)
{
properties += " class='";
properties += cssClass;
properties += "' ";
}
if (style.length != 0)
{
properties += " style='";
properties += style;
properties += "' ";
}
var time_sep_span = "";
time_sep_span += "<span ";
time_sep_span += properties;
time_sep_span += ">";
time_sep_span += L_TIME_SEPARATOR;
time_sep_span += "</span>";
var editablesHtml = "";
if (TD.displayHour)
{
editablesHtml += "<SELECT ";
editablesHtml += properties;
editablesHtml += " name='";
editablesHtml += paramName;
editablesHtml += postFix;
editablesHtml += "Hour'>";
var minHour;
var maxHour;
if (TD.twelveHourClock)
{
minHour = 1;
maxHour = 12;
}
else
{
minHour = 0;
maxHour = 23;
}
for (i = minHour; i <= maxHour ; i++){
editablesHtml += " <option value='";
editablesHtml += i;
editablesHtml += "'";
if (!TD.twelveHourClock)
{
if (i == hour)
editablesHtml += " selected ";
}
else
{
if (( hour == 0) && (i == 12))
editablesHtml += " selected ";
else if ((hour == 12) && (i == 12))
editablesHtml += " selected ";
else if ((hour > 12) && (i == hour - 12))
editablesHtml += " selected ";
else if (i == hour)
editablesHtml += " selected ";
}
if ((i < 10) && (TD.hourLeadZero))
{
editablesHtml += "> 0";
}
else
{
editablesHtml += "> ";
}
editablesHtml += i;
editablesHtml += "</option>\n";
}
editablesHtml += " </SELECT>";
}
if (TD.displayMinute)
{
if (editablesHtml.length != 0)
{
editablesHtml += time_sep_span;
}
editablesHtml += "<SELECT ";
editablesHtml += properties;
editablesHtml += " name='";
editablesHtml += paramName;
editablesHtml += postFix;
editablesHtml += "Minute'>";
for (i = 0; i <= 59; i++){
editablesHtml += " <option value='";
editablesHtml += i;
editablesHtml += "'";
if (i == minute)
editablesHtml += " selected ";
if ((i < 10) && (TD.minuteLeadZero))
{
editablesHtml += "> 0";
}
else
{
editablesHtml += "> ";
}
editablesHtml += i;
editablesHtml += "</option>\n";
}
editablesHtml += " </SELECT>";
}
if (TD.displaySecond)
{
if (editablesHtml.length != 0)
editablesHtml += time_sep_span;
editablesHtml += "<SELECT ";
editablesHtml += properties;
editablesHtml += " name='";
editablesHtml += paramName;
editablesHtml += postFix;
editablesHtml += "Second'>";
for (i = 0; i <= 59; i++){
editablesHtml += " <option value='";
editablesHtml += i;
editablesHtml += "'";
if (i == second)
editablesHtml += " selected ";
if ((i < 10) && (TD.secondLeadZero))
editablesHtml += "> 0";
else
editablesHtml += "> ";;
editablesHtml += i;
editablesHtml += "</option>\n";
}
editablesHtml += " </SELECT>";
}
if (TD.twelveHourClock)
{
editablesHtml += "<SELECT ";
editablesHtml += properties;
editablesHtml += " name='";
editablesHtml += paramName;
editablesHtml += postFix;
editablesHtml += "AMPM' >";
editablesHtml += " <option value='0'";
if (hour < 12)
editablesHtml += " selected ";
editablesHtml += "> ";
editablesHtml += L_AM_DESIGNATOR;
editablesHtml += "</option>\n";
editablesHtml += " <option value='1'";
if (hour >= 12)
editablesHtml += " selected ";
editablesHtml += "> ";
editablesHtml += L_PM_DESIGNATOR;
editablesHtml += "</option>\n";
editablesHtml += " </SELECT>";
}
return editablesHtml;
}
// get Locale Date/Time
// d: input Date
// return only Date part if includeDate==true, and includeTime== false
// return only Time part if includeDate==false and includeTime== true
// return datetime string if includeDate==true and includeTime == true
function GLDT(d, includeDate, includeTime) { // Get Locale Date/Time
// Returns date/and or time from locale string.
// Assumes that date appears before time in string.
if (includeDate && includeTime) return d.toLocaleString();
var d2 = new Date(d);
var ds;
var ds2;
var ml;
d2.setMilliseconds(d.getMilliseconds()<=887 ? d.getMilliseconds()+111 : d.getMilliseconds() - 111);
d2.setSeconds(d.getSeconds()<=49 ? d.getSeconds()+11 : d.getSeconds()-11);
d2.setMinutes(d.getMinutes()<=49 ? d.getMinutes()+11 : d.getMinutes()-11);
// although TD.twelveHourClock could be true, but d.getHours will always get hours in 24
// only the localized the date string will be in twelve hour clock
// here we want d2's hour's first digit different from d1's hour's first digit
// also if d1 is morning, d2 will be in afternoon, vice versa thus we get different strings for AM, and PM
// because AM/PM could be before hours (eg. in Korean)
if (TD.twelveHourClock)
{
var hour = d.getHours();
if (hour == 0 || hour == 1 || hour == 10 || hour == 11)
{
d2.setHours(14);
}
else if (hour == 12 || hour == 13 || hour == 22 || hour == 23)
{
d2.setHours(2);
}
else if (hour < 12)
{
d2.setHours(13);
}
else
{
d2.setHours(1);
}
}
else
{
d2.setHours( d.getHours()<12 ? (d.getHours() == 1 ? 2 : d.getHours() + 12) : (d.getHours()<20 ? 20 : 11));
}
ds = d.toLocaleString();
ds2 = d2.toLocaleString();
ml = ds.length < ds2.length ? ds.length : ds2.length ;
for (i=0; i<ml; i++) {
if (ds.charAt(i) != ds2.charAt(i))
{
// put the iterator back to the beginning of the word
while (ds.charAt(i) != ' ') i--;
i++;
break;
}
}
if (includeDate)
return ds.substring(0, i-1);
else if (includeTime)
return ds.substring(i);
else
return "";
}
// construct localized datetime/date/time string
// from DateTime(year, month, day, hour, minute, second)
// or Date(year, month, day)
// or Time(hour, minute, second)
function NeutralDT2D(s) {
var d="";
var td = new Date();
var a;
if (s.indexOf("DateTime")!=-1) {
a = s.replace("DateTime","").replace("(","").replace(")","").split(",") ;
d = GLDT(new Date(a[0], a[1]-1, a[2], a[3], a[4], a[5], 0), true, true);
} else if (s.indexOf("Date")!=-1) {
a = s.replace("Date","").replace("(","").replace(")","").split(",") ;
d = GLDT(new Date(a[0], a[1]-1, a[2], 0, 0, 0, 0), true, false);
} else if (s.indexOf("Time")!=-1) {
a = s.replace("Time","").replace("(","").replace(")","").split(",");
d = GLDT(new Date(td.getYear(), td.getMonth(), td.getDate(), a[0], a[1], a[2]), false, true);
}
return d;
}
function NeutralDT2Date(s){
var d="";
var td = new Date();
var a;
if (s.indexOf("DateTime")!=-1) {
a = s.replace("DateTime","").replace("(","").replace(")","").split(",") ;
return new Date(a[0], a[1]-1, a[2], a[3], a[4], a[5], 0);
} else if (s.indexOf("Date")!=-1) {
a = s.replace("Date","").replace("(","").replace(")","").split(",") ;
return new Date(a[0], a[1]-1, a[2], 0, 0, 0, 0);
} else if (s.indexOf("Time")!=-1) {
a = s.replace("Time","").replace("(","").replace(")","").split(",");
return new Date(td.getYear(), td.getMonth(), td.getDate(), a[0], a[1], a[2]);
}
return d;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -