我使用new Date(<date-string>)和.getTime()将日期字符串从1970年传递到毫秒。
问题是日期字符串不包含它们上的时区。他们是英国人,所以时区将是格林尼治标准时间或GMT+1取决于日期.
当我在前端(Chrome)或后端(Node.js)使用这种技术时.采取的时区是英国的一个(格林尼治时间或GMT+1取决于日期)。我想这是从操作系统上拿来的。
但是,当使用Node.js服务器时,我被告知配置为UTC.时区将永远是格林尼治标准时间,导致英国夏季时间的错误。
有什么方法可以告诉Date 在不改变服务器配置的情况下从操作系统中获取时区吗?
示例:
var aD
我使用moment.js +时区处理date和time对象,使用globalize向用户显示数字、货币等。
现在我想用globalize打印一个moment.js日期,所以我的第一个方法是使用moment.js的to getDate()-function,它不幸地丢弃了时区信息(Ex1)。当我用转换成正确时区的日期值初始化一个新的Date()时,我得到了正确的结果(Ex2),但当我使用完整版本时,它显示了时区UTC (这显然不是正确的)。有没有办法让这些组件协同工作?
var m = moment.tz(1459779436, 'Europe/Berlin');
// Ex 1
我正在尝试使用JS ES6 Intl.DateTimeFormat("pt-BR")来转换数据,但我得到的都是前一天。我正在使用的代码:
var a = new Intl.DateTimeFormat("en-US");
var b = new Intl.DateTimeFormat("pt-BR");
console.log(a.format(new Date("2015-01-02"))); // "1/1/2015"
console.log(b.format(new Date("2015-01-0
我想和moment.js一起在FlipClock.js小工具中设置纽约时间。我已经尝试过
HTML
<div class="my_flip_clock"></div>
JS
var a = moment.tz('America/New_York');
var clock = $('.my_flip_clock').FlipClock({
clockFace: 'TwelveHourClock'
});
clock.setTime(new Date(a.format()).getTime() / 1
我正在尝试在应用程序开始时设置时区
set "TZ=UTC"
node main.js
但不是工作:
// main.js
var tz = process.env.TZ;
var date = new Date();
console.log(tz, '||', date);
2015年11月17日21:41:29 GMT+0300
我们有一个函数,它像JS一样在UTC中解析日期/时间对,但随后强制它的行为就像在本地时区中指定的那样。以下是:
var tz = (new Date()).toString().match(/\((.+)\)$/)[0];
var str = (new Date()).toUTCString();
str = str.replace(/GMT$/,tz);
var output = new Date(str);
正则表达式返回两个结果,对于我的时区,我得到'(Pacific Daylight Time)'和'Pacific Daylight Time'。对于我们
我打了一个web服务电话,数据以JavaScript的形式返回,其中有日期。
"d": [{
"__type": "ServiceValues",
……………………..
"DateOfServiceStart": new Date(1453093200000),
"DateOfServiceEnd": new Date(1463457600000),
"CreatedDateTime": new Date(14531612339
我试图用时区和地区来转换日期和时间,但是它在IE11中不起作用。它工作在铬,火狐和边缘。
最小完备可验证示例:
function getLocalTime(date){
var timeZone = "Asia/Kolkata";
var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
var dateAndTime = utc
当我构建一个日期表时,这个ISO字符串" 2016 -02-01T16:00:00Z“我得到了2016年2月1日下午17:00 GMT+0100
由于某些原因,js增加了一个小时。
我觉得这是时区的事..。但我怎么才能解决这个问题?
就这么做
var date = new Date('2016-02-01T16:00:00Z');
alert(date);
我正在处理一个React.js项目,它处理与DateTime相关的大量比较(比较从DateTime检索到的时间、月份、年份等)。对于这个特定的React.js应用程序,我总是把DateTimes (来自new Date())看作是服务器时区中的用户。假设服务器位于“欧洲/柏林”时区,我希望在应用程序的任何一点上,调用new Date('2019-01-01')将检索一个DateTime,该DateTime在“欧洲/柏林”时区中引用,即Tue Jan 01 2019 01:00:00 GMT+0100 (Central European Standard Time)。例如,如果我
下面的代码可以将时间戳转换为文本格式。
export default function convertTime(time) {
let date = new Date(time);
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hours = date.getHours();
let minutes = "0" + date.getMinutes();
return day +
在firebase功能中,我使用mailgun向用户发送电子邮件,在moment.js中使用当前时间的firebase数据库中的触发器,
if (partnerEmail) {
console.log(`online class email to partner`)
let emailData = {
recipient: partnerEmail,
date: moment(date * 1000).format('MMMM Do YYYY'),
time: moment(new Date()).format(
我正在编写一个简单的javascript来计算服务器和用户时间之间的时间差。但有些地方出了问题。
如果我捕捉到javascript和php的日期,我有:
date("M d Y h:i:s A")
php date : Wed Jun 27 2012 04:10:41 AM
new Date()
J S date : Wed Jun 27 2012 10:10:40 GMT+0200 (CEST)
这是正确的!对于本地和服务器时间,我有两个不同的时间。
如果我花几秒钟时间..。出了点问题:
(php: date("U"))
sec PHP: 1340
以下输出的时间比输入的时间少4小时:
X = new Date('2015-07-09T14:18:12.430')
$('body').append(X)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
当我在chrome中定义相同的日期时,它会显示预期的结果。但是,当我在node.js中运行它时,代码如下:
var date = new Date(2015, 1, 1);
console.log(date); // it displays: 2015-01-31T16:00:00.000Z
我的问题是为什么不是2015-02-01?
我在JavaScript的Date构造函数中发现了奇怪的行为。它为不同的unix毫秒值在不同的时区下创建时间。我在纽约,所以我希望他们都能成为EST,但也有一些会成为EDT。
// EST as I expect:
new Date(1446613200000)
Wed Nov 04 2015 00:00:00 GMT-0500 (EST)
new Date(1446440400000)
Mon Nov 02 2015 00:00:00 GMT-0500 (EST)
// EDT for some reason:
new Date(1446354000000)
Sun Nov 01 2
我使用Date()函数将MySQL日期转换为JS对象。下面是我如何做这件事的代码:
var a = "2019-03-12 12:30:03"; //MySQL Date
function MySQLToDate(dateString) {
if (typeof dateString === 'string') {
return new Date(dateString);
}
else {
return dateString; //in case the argument is already an object
我正在尝试将日期时间字符串转换为JS date obj。我的输入是2021-09-16 19:15:52.930。问题是这个字符串没有时区,在转换为JS date obj时,我需要在cdt/cst(取决于夏令时)时区中标记它们。 我尝试的方法是: let dt = new Date('2021-09-16 19:15:52.930 Timezone') 我可以通过CDT或CST代替时区来解析它。但在这种情况下,我的逻辑需要知道当前根据一年中的时间遵循哪个时区。我想要一种可以由JS自动处理的方法,比如传递CT?2021-09-16 19:15:52.930 CT,但Date()
似乎建议getTimezoneOffset()总是返回当前区域设置的偏移量,而不考虑日期对象。但我得到的结果不一致,我无法理解。
new Date().getTimezoneOffset() // -120
new Date("2015-03-10T15:48:05+01:00").getTimezoneOffset() // -60
new Date("2015-03-10T15:48:05-04:00").getTimezoneOffset() // -60
另外,是否有更好的方法将时区从日期时间字
我有一个angular.js应用程序,我希望获得当前周的星期一和星期日的日期,然后默认设置为日历日期。我看到了一个错误,因为产生的日期没有落在7天的时间跨度。我解决了这个问题。
但是当我在玩代码的时候,我发现,类似的日期创建代码会在一小时内产生不同的值。下面是我的代码片段:
var current = new Date(); // get current date
var weekstart = current.getDate() - current.getDay() + 1;
var weekend = weekstart + 6; // end day is the first
我正在尝试获得一个倒计时结束星期一@午夜太平洋标准时间。我以为我一周前就让它工作了,但显然不是。
我正在使用date.js
var monday = Date.today().next().monday();
var UTCmonday = new Date(monday.getTime() + monday.getTimezoneOffset() * 60000);
var PSTmonday = new Date(UTCmonday.setHours(UTCmonday.getHours() + 9));
$('#defaultCountdown').countdown({
我使用的后端API只支持+0000格式的时区。
我目前得到了当前格式的日期:
"2017-12-20T16:39:31.000Z“
使用moment.js,我如何以以下字符串格式获取它?
2017-12-20T16:39:31+0000
到目前为止,我已经做到了:
var date = new Date();
this.lastCheckedDate = moment(date).toISOString();
是否可以在js中创建不受时区影响的日期对象?例如,我想将"2015“、"03”和"31“定为一年。
var ex = new Date(2015,3,31);
如果我现在“打印”该变量,则如下所示:
Fri May 01 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
第二天就变了。有可能避免吗?如何创建每个时区中始终相同的日期对象?
我需要尽快将这种行为包含在应用程序中,而且我不能只使用String,因为我们必须使用一个datepicker插件(Bootstrap),它可以处理date对象。
提前感谢
守则:
function format_date( date, index )
{
if ( !date || ( index && !( date[ index ] ) ) )
{
return '';
}
console.log( date );
var date = new Date(
( index === undefined ) ? date : date[ index ]
);
console.log( date );
return ( date